git merge
должен быть в состоянии обнаружить (до определенного момента) переименовывает.
recursive
Это может решить только две головы, используя алгоритм слияния 3-полосная.
Кроме того, это может обнаруживать и обрабатывать слияния с использованием переименований.
Это стратегия слияния по умолчанию при вытягивании или слиянии одной ветви.
Но git-svn
может импортировать/экспортировать только из/в SVN, а не для слияния.
И слияние сложно:
ПРЕДОСТЕРЕЖЕНИЯ
Для простоты и совместной работе с менее умелой системы (SVN), рекомендуется, чтобы все git svn
пользователи клонировать, принеси и dcommit непосредственно с сервера SVN, и избегать всех операций git clone/pull/merge/push между репозиториями и ветвями git.
Рекомендуемый способ обмена кодом между ветвями git и пользователями - git format-patch и git am, или просто 'dcommit'ing в SVN-репозиторий.
Выполнение git merge или git pull не рекомендуется на ветке, из которой вы планируете dcommit. Subversion не представляет собой слияние каким-либо разумным или полезным способом; поэтому пользователи, использующие Subversion, не видят никаких слияний, которые вы сделали. Кроме того, если вы сливаете или тянете из ветки git, которая является зеркалом ветви SVN, dcommit может передать неверную ветку.
Если вы сливаться, обратите внимание на следующее правило: мерзавец СВН dcommit попытается совершить на вершине SVN коммит назван в
git log --grep=^git-svn-id: --first-parent -1
Таким образом, вы должны убедиться, что последние фиксации ветви, которую вы хотите dcommit to, является первым родителем слияния. В противном случае хаос будет иметь место, особенно если первый родитель является старшим фиксатором в той же ветви SVN.
См. Этот ответ: http://stackoverflow.com/questions/2945842/using-git-svn-or-similar-just-to -help-out-with-svn-merge/3585702 # 3585702 –
См. http://stackoverflow.com/questions/714589/can-git-svn-correctly-populate-svnmergeinfo-properties ... Часть «Изменить:» 2-го ответа (не принятый ответ) особенно хорош. –