Как я создаю сообщение о фиксации SVN Шаблон и Рычаг для Проверки

Вот базовое решение R

elementdf[apply(elementdf[,-1], 1, function(x) all(x %in% nodedf$nid)),]

Объяснение:

apply работает путем «применения» функции (в данном случае пользовательской) к каждой строке (переменной x в функции) объекта elementdf. Если бы мы хотели сделать это по столбцам, мы бы изменили 1 на 2.

Используемая нами функция просматривает каждый элемент в x (строка в elementdf) и проверяет, находится ли он также в nodedf. %in% - это специальная функция, которая возвращает вектор логики, элемент для каждого в x. Функция all возвращает TRUE, если все элементы равны TRUE (имеется в виду, что все они в nodedf), а FALSE в противном случае.

Таким образом, в конце оператор apply вернет вектор логики, в зависимости от того, есть ли в каждой строке элементы, найденные в nodedf.


Чтобы получить значения в каждой строке, которых нет в nodedf, вы можете сделать

apply(elementdf[,-1], 1, function(x) x[!(x %in% nodedf$nid)])

, что, как вы заметите, уже очень похоже на строку кода выше. За исключением этого случая, оператор apply вернет список. Из приведенного вами примера это будет список длины 2, где первый элемент - numeric(0), а второй - вектор, содержащий 7. Если у вас есть несколько нарушителей в одной строке, будет показан каждый из них.


Чтобы удалить строки в nodedf, которые не имеют ссылок в elementdf, вы можете сделать

nodedf[nodedf$nid %in% unique(unlist(elementdf[,-1])),]

Часть unique(unlist(...)) просто захватывает все уникальные значения в elementdf[,-1] ], преобразуя их в числовой вектор.

25
задан Hardik Mishra 13 January 2017 в 06:35
поделиться

2 ответа

Взято из Как создать шаблон проверки SVN Tortoise (изменен для соответствия более современным версиям):

Шаблон журнала можно настроить в соответствии с требованиями проекта и может использоваться для реализации строгого формата журнала.

Добавить это в репозиторий svn легко:

  1. Выберите папку SVN, к которой вы хотите применить это, перейдите в свойства Subversion (щелкните правой кнопкой мыши TortoiseSVN -> Свойства )

  2. Выберите Новый -> Расширенный , затем tsvn: logtemplate из раскрывающегося списка с именем Имя свойства .

  3. Добавьте указанное выше шаблоны (или ваши собственные) в текстовую область под полем со списком.

  4. Если вы хотите применить свойство к каждому файлу и папке в иерархии под текущей папкой, установите флажок Рекурсивно.

  5. Нажмите ОК , чтобы добавить это свойство в список.

  6. Отметьте все папки и файлы, чтобы все остальные в вашей команде могли использовать тот же шаблон.

32
ответ дан 28 November 2019 в 21:23
поделиться

Один из способов сделать это с помощью командной строки - изменить переменную среды SVN_EDITOR, описанную здесь:

http://svn.haxx.se/dev/archive-2006-02/ 0487.shtml

SVN_EDITOR="rm svn-commit.tmp && cp $REPOS/hooks/log.tmpl svn-commit.tmp && vi svn-commit.tmp"
4
ответ дан purecharger 28 November 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: