В моем проекте есть хранилище Subversion в сетевой файловой системе, и новая команда хотела бы получить к нему доступ с помощью Git, иметь возможность фиксировать его и получать от него обновления.
Что у меня есть внужно создать новый клон git-svn
репозитория Subversion в одной и той же сетевой файловой системе и убедиться, что эти два репозитория всегда соответствуют друг другу.
Способ сделать этовозможно добавить хук после фиксации для Subversion и нового репозитория Git, который будет обновлять репозиторий другого.
Хук после фиксации Subversion будет включать git svn rebase
, а Git one git svn dcommit
.
Проблема в том, что мне придется использовать какую-то блокировку, чтобы никто не фиксировал ни один из репозиториев, в то время как другой также был зафиксирован, потому что они всегда должны быть синхронизированы перед любой фиксацией.У этого есть несколько недостатков, среди которых время, которое требуется для фиксации в Subversion или отправки в репозиторий Git (он должен ждать завершения хука), и тот факт, что некоторые пользователи могут не иметь возможности запускать git svn
(потому что он не установлен на их компьютере), что означает, что они не могут обновить другой репозиторий при фиксации / отправке.
Как я могу решить эти проблемы?Как будут выглядеть хуки Subversion и Git?