Мы работаем с несколькими рабочими процессами в течение нескольких месяцев, когда разработчики SVN создают ветви связывания SVN, которые объединены в ветку интеграции с использованием git и переданы обратно в SVN, объединить за раз, с dcommit. В этом потоке работы было выполнено единственное git-svn repo, выполняющее всю работу слияния.git-svn: сохранение объединяется в двух разных репозиториях git-svn
Этот рабочий процесс работал довольно хорошо, и слияние git обычно добросовестно сохраняется в исходном репозитории git-svn.
Однако теперь мы решили распространить объединительную рабочую нагрузку на нескольких пользователей, каждая из которых имеет свой собственный репозиторий git-svn. К сожалению, теперь мы обнаруживаем, что слияния, выполняемые одним пользователем git-svn, иногда (но не всегда), появляются, как один родитель, совершают репозицию git-svn другого пользователя вместо того, чтобы выглядеть как два родительских слияния.
Утрата истории слияния играет хаос с анализом истории и вызывает ненужные конфликты слияния, поскольку git больше не может идентифицировать правильную базу слияния, что-то, что она могла бы сделать, если бы слияния родителей были сохранены во всех репозиториях.
Есть ли у кого-нибудь какие-либо действия, которые помогают избежать обстоятельств, из-за которых история слияния может быть повреждена в одном или нескольких репозиториях git-svn, которые синхронизируются с общим SVN-репо?
Я использую git-svn в течение довольно долгого времени и не встречал эту проблему. Возможно, я следую простому рабочему процессу. Разве «ветви» вы упомянули всю ветвь git? Вы можете более подробно описать свой рабочий процесс. –
Ветви являются ветвями SVN. Слияние git всегда находится между двумя git-коммитами, соответствующими советам двух ветвей SVN, и всегда после этого происходит немедленное dcommit'd в SVN после успешного слияния. Как я уже сказал, это работает очень хорошо, когда я был тем, кто объединяет интеграцию. Однако теперь коллега начал брать на себя часть объёмной нагрузки, и я иногда теряю второго родителя слияний, которые он делает, и наоборот - он иногда теряет 2-го родителя от слияний, которые я делаю. – jonseymour
BTW: У нас есть 341 SVN теги и 560 ветвей SVN. В результате значения свойства svn: mergeinfo на вершине интеграционной ветви довольно сложны и велики. – jonseymour