题
我把从现有的CVS库SVN库。CVS存储库中有几创建分支和我想重新命名分支机构的同时,转换。
想转换是这样的:
CVS branch SVN branch
HEAD -> branches/branchX
branchA -> trunk
branchB -> branches/branchB
branchC -> branches/branchC
就是说,CVS的头成为一个正常的分支和CVS branchA变SVN干。
这两个人简历和SVN储存库将是在相同的linux机。
怎么可能这样做?
还转换CVS branchA变SVN干和所有其他人简历分支机构都被忽略可能是不够的。
解决方案
我特别感兴趣的维护承诺的历史。如果我重新命名和移动分支机构在SVN转换后,将历史记录被保留的?
是的。颠复还跟踪更改目录的结构,以及所有版本的历史记录被保留,即使一个文件的移动是在树。
我建议转换的储存库 cvs2svn, ,其中包括树枝和标签。一旦该仓库是在颠复你可以移动的分支机构和签约,如你所愿。这也保持历史记录的实际的标签和分支机构被重新命名,这可能是有趣的历史背景后面。
其他提示
它已经有一段时间,因为我已经做了一CVS->SVN转换,而且可能甚至更长的时间,因为我做了一个平凡的分支结构。由于SVN可以移动目录的树木相当容易,你可以做整个转换的第一,那么整理的干/分支机构的结构完全在SVN后。
如果你做到了这一点,并移动的整体目录中的树木内SVN,它可能是最好的,如果你承诺之后,每一棵树命名/移动步骤。只是要记住。
颠复分支机构目录,所以你可以移动的分支之后的进口已完成的和没有历史将会丢失。
一些额外的信息,以支持接受的答案:
cvs2svn不允许转换从树干以一个分支机构或分支,树干
所以移动的东西一旦你转化为svn是最好的路要走。
它可以移动的中继线和分支机构目录后的转换,但这将需要一个明确的后转换SVN承诺,将继续留在你的SVN历史记录,使得历史探索更复杂一点。
但你确实可以告诉cvs2svn储存的树干和树枝SVN路,你想要通过使用 --symbol-hints=symbol-hints.txt
命令行选项或(如果您使用的是一个选项文件转换)的 SymbolHintsFileRule('symbol-hints.txt')
符号战略规则, symbol-hints.txt
是一个文件包含线如下:
. .trunk. trunk branches/branchX .
. branchX branch trunk .
请注意,有些提交信息是自动生成的通过cvs2svn(例如,用于设立分支)将提的原有分支的名称。
虽然移动,围绕的分支之后转换做是可能的,它可以更好地设置cvs2svn配置文件明确指定名称你想要的你的每一个现有分支机构。一个好处是,鱼将会了解的输出一个好多了。
我特别感兴趣的维护承诺的历史。如果我重新命名和移动分支机构在SVN转换后,将历史记录被保留的?