Предварительная фиксация хуков в C # с SharpSVN - PullRequest
3 голосов
/ 19 августа 2010

Я новичок в SharpSVN (и, честно говоря, довольно плохо знаком с C #).Я пытался заставить работать простой хук перед фиксацией, который проверяет комментарии.(т. е. фиксация завершается неудачей при отсутствии комментария)

Есть несколько постов (например, этот ), которые связаны и полезны, но у меня есть несколько фундаментальных вопросов, которые меня удерживаютдалее:

1) Как получить код, подобный приведенной выше ссылке, работающей в C #?(т. е. какой контекст C # я бы использовал - консольное приложение? класс csharp?)

2) Как в контексте Windows Server я могу назвать свою скомпилированную программу C #?

Я пытался методология ответа без везения.

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 20 августа 2010

Если вы создаете хук pre-commit, вы должны называть его pre-commit.exe.(Subversion принимает перехват с расширениями .exe, .cmd, .bat и .wsf.)

Перехватчики обмениваются данными через stdout, stderr и в некоторых случаях stdin, поэтому вы должны скомпилировать ваше приложение как консольное приложение.

Чтобы заработал хук, вы должны поместить .exe (и необходимые библиотеки DLL) в каталог хуков репозитория.

См. Как получить доступ к информации о файле в предварительной фиксацииперехватить, используя SharpSVN для некоторого примера кода.

0 голосов
/ 28 ноября 2012

Мне пришлось не давать пользователям совершать ошибки в неправильной ветке. Поэтому я написал хук перед фиксацией, который проверил бы комментарий на предмет значения ключа. Если комментарий не начинается с правильной клавиши, фиксация отменяется.

Вот проект: http://sourceforge.net/projects/csvnprecommit/

Не стесняйтесь использовать его в качестве основы для собственного крючка или используйте как . Если вы нашли ошибку, отправьте ее в проект.

0 голосов
/ 19 августа 2010

Скомпилируйте ваш "крючок" как консольное приложение, а затем напишите пакетный файл, который вызывает ваше консольное приложение. Пакетный файл должен быть правильно назван и помещен в папку «hooks» вашего хранилища Subversion.

В вашем конкретном случае командный файл должен называться pre-commit.bat (или pre-commit.cmd).

...