Когда кто-то выполняет «вишневое слияние» с Subversion, Subversion записывает коммит, который был слит в метаданные для задействованных файлов и папок.
Когда вы делаете git svn fetch
, Git видит, чтообъединяет метаданные и пытается интерпретировать их как объединение удаленных веток Git.Все это сообщение означает, что Git пытался это сделать, но не смог, поэтому он будет записывать его как обычный коммит, а не как слияние.
Вам не о чем беспокоиться, если только вы не видите ошибкив том, как Git забирает коммиты Subversion.
Более подробно:
Допустим, у вас есть хранилище Subversion с двумя ветвями A
и B
с соответствующим репозиторием Git svn:
A B
* r6
| * r5
* | r4
| * r3
|/
* r2
* r1
Если бы вы реинтегрировали ветвь B
обратно в ветвь A
, вы бы использовали команду в A
рабочей копии ветки, например svn merge -r 3:HEAD ^/branches/B
или просто svn merge --reintegrate ^/branches/B
.Subversion будет записывать метаданные в тегах svn:mergeinfo
, записывая, что это слияние произошло, и ваши следующие git svn fetch
увидят эти метаданные, увидят, что ветвь B
была реинтегрирована в ветвь A
, и запишут соответствующий коммит в своемтоже история как слияние.
Если вы просто хотели один коммит из ветви B
в ветке A
(скажем, r3 добавил нужную вам функцию), но вы не хотите реинтегрировать всю веткутем не менее, вместо этого вы бы использовали команду Subversion, например svn merge -c 3 ^/branches/B
.Опять же, Subversion будет записывать метаданные слияния, и Git увидит это и попытается выяснить, сможет ли он записать слияние веток, как в предыдущем примере.В этом случае он не может: ветка A
не содержит ничего похожего на ветку B
r5.Вот что вызывает это предупреждение.