Когда я запускаю git svn fetch, он иногда печатает следующее предупреждение:
W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)
О чем это предупреждение?
Когда я запускаю git svn fetch, он иногда печатает следующее предупреждение:
W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)
О чем это предупреждение?
Когда кто-то выполняет "слияние вишни" с Subversion, Subversion записывает фиксацию, которая была объединена в метаданных для задействованных файлов и папок.
Когда вы выполняете git svn fetch, Git видит, что слияние метаданных, и пытается интерпретировать его как слияние между ветвями Git. Все это сообщение означает, что Git пытался сделать это, но не удалось, поэтому он будет записывать его как регулярное коммитирование, а не слияние.
Это не то, о чем вам нужно беспокоиться, если вы не видите ошибок в том, как Git берет на себя Subversion.
Подробнее:
Скажем, у вас есть репозиторий Subversion с двумя ветвями A и B с соответствующим хранилищем swn Git:
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. Это вызывает это предупреждение.