2016-04-29 2 views
6

Я использую svn2git (the good one), чтобы преобразовать некоторые хранилища SVN в хранилища Git.
Он имеет параметр командной строки --svn-branches который документированную сКаковы плюсы и минусы параметра -svn-branch для svn2git

Используйте содержимое СВН при создании филиалов, Примечание: SVN теги ветвей, а

Какие плюсы и минусы этого параметра командной строки.

Это просто, что без него быстрее, потому что есть только тег Git, созданный, а не все дерево работ, сбрасываемое, и с ним безопаснее иметь правильное состояние, потому что все дерево работы сбрасывается или есть больше для него ?

Вы бы рекомендовали или отключили этот параметр?

ответ

0

страница MoveToGit/UsingSvn2Git людей упоминает:

Действия рекурсии хака сказать svn2git в рекурсию в каталог она просто скопирована или что существовало, поскольку он представляет интерес.
Пример: если мы импортируем kdelibs, он существует в trunk/KDE/kdelibs. В ветвление, кто-то сделал:

svn cp $SVNROOT/trunk/KDE $SVNROOT/branches/KDE/4.4 

СВН записано в этой фиксации, что branches/KDE/4.4 был единственный путь изменился.
Это означает, что правило

branches/KDE/[^/]+/kdelibs/ 

не будет соответствовать.

Нам нужно сообщить инструменту, что что-то интересное произошло внутри, и оно должно быть рекурсивно. Затем он снова применит все правила к файлам, которые существуют в этой точке, после чего правила будут соответствовать.

Я подозреваю, что этот вариант --svn-branches должен делать с «RECURSE действия»

+0

Если это так, то почему это не по умолчанию или поддерживается только способ работы? Не делать это звучит для меня, как будто вы можете легко получить неправильный/неожиданный результат. Значит, это должно по крайней мере быть поведением по умолчанию, не так ли? – Vampire

+0

@ BjörnKautler Я согласен, если в большинстве случаев новый ветвь SVN означает * дополнительные * файлы, а не удаленные файлы. – VonC

+0

Который тогда будет отсутствовать, не так ли? Так же плохо, как и дополнительные файлы, может быть, хуже – Vampire