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