Я использую git в течение некоторого времени, главным образом git -svn. Теперь я хочу убедить своих коллег переключиться с svn на git. Но, к сожалению, предварительным условием является то, что хранилище svn продолжает жить довольно долго. Поэтому я искал решение и придумал книгу:
Jon Loeliger "Управление версиями с помощью Git". Я купил его, и это действительно хорошо, но я не совсем понимаю руководство по настройке git svn gatekeeper repo.
В главе 16 он описывает ситуации, в которой есть Репозиторий Subversion и, по крайней мере, которые хотят использовать git. Он предлагает один Хранилище "gatekeeper" git, которое единственный интерфейс для подрывной деятельности. После git svn клонирование подрывной операции repo (с --prefix = svn/), все ветки затем подталкиваются к голой репозиторий (git push../svn-bare.git 'Ссылки/пультов ДУ/СВН/: ссылки/главы/СВН/', и другим пользователям git говорят клонировать это репо, которое теперь содержит локальные ветвей всех svn пультов.
Эта часть работает, и я думаю, что полностью ее понимаю. Но я не получаю следующую часть:
Если разработчик, который клонирует голый репозиторий, отбрасывает изменения обратно из своего репо в голый репозиторий, а затем я dcommit это в голое репо, чтобы svn, фиксации, которые пользователь нажал, потеряны по уважительной причине из-за замененных коммитов git -svn создает. Или я ошибаюсь? Как это работает?
В книге говорится:
Затем, чтобы слить обратно в подрывную деятельность, в репозиторий привратника, вы делаете
git checkout svn/trunk (или другое ветки - это проверка отсоединенная головка, поскольку svn/trunk - это дистанционный пульт) git merge --no-ff new-feature git svn dcommit
Как я могу проверить ветку в открытом репозитории? Я не думаю, что это работает
Это приводит к фиксации слияния на отсоединенную головку, а затем измененную commit (после строки git -svn-id добавлено) помещается в реальный svn/trunk филиал.
Что подразумевается под реальным svn/trunk?
Фиксирование на отдельном голова "хуже, чем избыточная". это для чего-то еще в конечном итоге приводит к конфликтам. Итак, просто забудьте об этом. Если вы не поставили это на ветке, в первую очередь, это намного легче забыть "(Джон Loeliger).
Я немного смущен. Есть ли у кого-то лучшее объяснение для создания репозитария git svn gatekeeper? Я искал в Интернете и на этом сайте, но я не нашел ничего подходящего для меня.
Я так устал тратить столько времени на ветвление и слияние svn, когда сотрудничаю с моими коллегами.