Ответ 1
Как показано этот поток, вы можете иметь крючки на стороне Subversion, которые могут фактически отклонить ваш git svn dcommit
на основе некоторых критериев.
Но если вам нужна git перехват на стороне git, я бы рекомендовал создать промежуточный голый репозиторий git (голый для простого нажатия/дергать).
На этом голом репо вы можете использовать любой крючок, как показано в "как развернуть несколько ветвей в разные каталоги через git push?" (не о svn, но только здесь, чтобы подробно описать аналогичную настройку дополнительного репо)
- Если промежуточное репо подтвердит ваш push, оно может вызвать
git svn dcommit
. - он также может по запросу
git fetch
запуститьgit svn fetch
и проверить его, прежде чем позволить вашему собственномуgit fetch
двигаться вперед.
(2 года спустя)
David Souther предлагает решение в в своем блоге (апрель 2012 г.)
У меня есть решение иметь репозиторий с разделенными головами. В большинстве случаев промежуточный репозиторий будет иметь пустой рабочий каталог. Когда происходит нажатие, он проверяет мастер, проверяет сборку и нажимает на svn, прежде чем вернуться в пустую ветку.
Собиралось создать промежуточный репозиторий git с двумя ветвями.
- master все равно укажет на репо SVN,
- а новая ветвь
stage
позволит нам сохранить рабочий каталог в чистоте и в синхронизации с изменениями ниже по течению.
Отметьте его смысл.