Git Server Side Hook с использованием C#
С Subversion и VisualSVN я смог поместить бинарный файл.net в качестве ловушки, используя C# и собрав сборку. Вы просто помещаете файл с именем Post-Commit.exe в папку ловушек, и он работает.
С git, я думаю, потому что он работает через Cygwin и в основном через Linux типа VM, это должен быть исполняемый файл, который будет работать на Linux?
Причина, по которой я перешел на C# и двоичный файл.net, заключается в том, что я использую мой основной язык кодирования, и мне было проще и быстрее делать то, что я пытался сделать.
На самом деле, что было сделано с Subversion, это после того, как кто-то зафиксировал хранилище, которое он проверил, чтобы проверить, была ли обновлена магистральная папка хранилища, если это было так, то он развернулся и извлек копию хранилища (или обновил, если она уже проверено). Затем он запускает бесплатную программу, найденную в сети, под названием ftpsync, которая синхронизирует хранилище с веб-сервером. (На самом деле он только проверял папку просмотра, а не файлы кода, они являются сайтами mvc.net) Я не уверен, что могу переключиться на git, поскольку он не выглядит настолько зрелым, как Subversion, по крайней мере, платформа Windows. Я посмотрел на GitSharp, но это, кажется, большая работа, и на самом деле это не рабочий код.
Это идея, так как мне не нужно давать людям доступ к веб-серверу для обновления, все, что мне нужно сделать, это дать им доступ к папке внешних линий проекта Subversion, и это также заставляет разработчиков использовать вместо этого систему контроля версий обойти это и непосредственно обновить веб-сервер.
спасибо за любую помощь или направление
Также, как отмечается в других заметках, ftpsync - это исполняемый файл Windows, запускаемый из двоичного файла.net в качестве отдельного потока, так что вы можете получить ответ от коммита к subversion, не дожидаясь завершения программы ftpsync, так как иногда это может занять некоторое время.,
1 ответ
Почему бы просто не оформить заказ на своем веб-сервере, настроить центральный сервер в качестве источника / мастера и выполнить git pull
через cron / запланированное задание?
Очевидно, что вы должны использовать пользователя в своем источнике, который имеет доступ только для чтения, и настроить свой веб-сервер так, чтобы запретить доступ к .git
dir каким-то образом (либо htaccess, либо через права доступа к файлу).