У меня есть ловушка для пост-фиксации на github , которая делает именно это, и позволяет пользователям (вместо администратора сообщать, какие файлы они просматривают для изменений, и какой адрес электронной почты адресует эти изменения).следует отправить на.
Вы можете объединить это с моим крючком pre-commit-kitchen-sink , чтобы пользователи могли редактировать только свои собственные файлы наблюдения. Сценарии ловушек используют Perl,но им не требуются нестандартные модули, поэтому они довольно просты в использовании.
Каждый пользователь получает свой собственный файл наблюдения, синтаксис довольно прост:
mail = david@gmail.com
file =**/build.xml
match = [Mm]akefile
В строке mail
я хочу отправить уведомление по электронной почте. У меня их может быть несколько. file
- это глобальное выражение (закрепленное в передней и задней части выражения) того, какие файлы я просматриваю. match
строка похожа и использует регулярное выражение Perl, которое не занято.
Файлы наблюдения хранятся в хранилище Subversion в указанном вами каталоге. Это означает, что пользователи могут устанавливать свои собственные watчес.Вы можете использовать мой хук pre-commit-kitchen-sink, чтобы пользователи не могли изменять файлы наблюдения других пользователей:
[file You are only allowed to change their own watch files]
file =/watchfiles/**
permission = read-only
users = @ALL
[file You are only allowed to change their own watch files]
file = /watchfiles/<USER>.cfg
permission = read-write
users = @ALL
Строка <USER>
интерпретируется как идентификатор пользователя.
Пример
Если я хочу установить хук после фиксации для нескольких файлов, могу ли я установить?например, file = ab / build.xml, bb / cs.txt, cc / . и т. д. Я хочу получать уведомления по электронной почте только об этих файлах
Вы можете вставить строку длякаждый шаблон:
email = my@email.com
file = **/ab/build.xml
file = **/bb/cs.txt
file = **/cc/*.*
Помните, что шаблон глобуса file
привязан к корню хранилища (используя /
в качестве корня), поэтому вам нужно указать полный путь или использовать **/
указать любой путь к этому файлу.