Предварительная проверка CVS
Мне нужно запустить сценарий предварительной фиксации CVS для любых файлов Javascript. Сценарий в основном запускает JS Hint, чтобы подтвердить, что любой код JavaScript находится в хорошем состоянии. Проблема в том, что я не могу установить JS Hint на той же машине, где у меня есть CVS-репозиторий. Самое простое решение, которое я придумал, для сценария предварительной фиксации - ssh команда JS Hint на другом компьютере с установленной JS Hint. Моя проблема в том, что я не уверен, как передать новое содержимое файла на удаленный компьютер, поскольку он еще не передан в CVS. Есть ли у машины CVS способ доступа к новому содержимому из сценария предварительной фиксации?
1 ответ
Commitinfo предоставляет аргументы регулярного выражения, которые при совпадении будут запускать вашу команду для этих файлов, в соответствии с этим:
http://durak.org/sean/pubs/software/cvsbook/The-commitinfo-And-loginfo-And-rcsinfo-Files.html
Commitinfo
commitinfo' file defines programs to execute whenever
cvs commit'собирается выполнить. Эти программы используются для проверки перед фиксацией, чтобы убедиться, что измененные, добавленные и удаленные файлы действительно готовы к фиксации. Это можно использовать, например, для проверки того, что измененные файлы соответствуют стандартам вашего сайта для практики кодирования.
Как упоминалось ранее, каждая строка в файле commitinfo состоит из регулярного выражения и шаблона командной строки. Шаблон может содержать имя программы и любое количество аргументов, которые вы хотите ему предоставить. Полный путь к текущему исходному хранилищу добавляется к шаблону, за которым следуют имена файлов любых файлов, участвующих в фиксации (добавленных, удаленных и измененных файлов).
Будет использована первая строка с регулярным выражением, соответствующим относительному пути к модулю. Если команда возвращает ненулевой статус выхода, фиксация будет прервана.
Если имя репозитория не соответствует ни одному из регулярных выражений в этом файле, используется строка `DEFAULT', если она указана.
Все вхождения имени ALL' appearing as a regular expression are used in addition to the first matching regular expression or the name
ДЕФОЛТ'.
Примечание: когда CVS обращается к удаленному репозиторию, `commitinfo'будет запускаться на удаленной (т.е. серверной) стороне, а не на стороне клиента (see section Удаленные репозитории).
От: http://herbert.the-little-red-haired-girl.org/html/cvs/cvs_18.html