git: работа с git-svn при слияниях - PullRequest
2 голосов
/ 25 сентября 2011

Насколько я понимаю, git-svn не поддерживает отправку коммитов слияния.

Есть ли способ заставить его работать с такими коммитами?

Мы попытались использовать rebase для создания линейной истории. Тем не менее, это не с конфликтами из-за пробелов. Есть ли способ линеаризовать историю, чтобы не было конфликтов?

Ответы [ 2 ]

0 голосов
/ 08 января 2014

Это не просто, но возможно.

  1. Проверьте свою ветвь функций

    $ git checkout feature1
    
  2. Создайте ветку Subversion, желательно с тем же именем, и перебазируйте вашу локальную ветку git

    $ git svn branch feature1
    $ git rebase remotes/feature1
    
  3. Когда вы отправите свои изменения, они перейдут в ветку Subversion, а не в ствол.

    $ git svn dcommit
    

Единственный способ сделать слияние, о котором я знаю, это использовать временную проверку SVN и использовать svn merge. Для слияний, которые могут быть выполнены автоматически, без конфликтов, сценарий последних шагов (поиск в репозитории SVN, временная проверка, слияние) хорошо сработал.

0 голосов
/ 08 января 2014

Самый простой способ перебазировать объединенные коммиты в svn - это раздавить их:

при условии, что мы перебазируем ветку dev в trunk

git checkout trunk
git merge --squash dev

, возможно, вам придется исправить реальное слияниеконфликты между trunk и dev.В конце у вас есть один коммит, который вы можете хорошо git svn dcommit.

Недостатком этого метода является то, что вы теряете детализацию ваших коммитов в SVN.Если это проблема, вы можете использовать стратегию слияния в стиле rebase для git (например, http://unethicalblogger.com/2010/04/02/a-rebase-based-workflow.html).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...