我们有两个存储库,一个用于当前代码,一个用于项目管理。
现在我们需要将代码分支到项目管理库。
SVN给我一个错误,我在文档中发现SVN无法完成这项工作(不同的存储库),
所以我导出代码并签入项目存储库。
问题:
PS:我知道有一种主干/分支方式,但我们使用两个存储库。
答案 0 :(得分:6)
如果我做得对,你想将已经受版本控制的内容从存储库添加到另一个存储库?如果就是这样,你应该看看svnsync,它可以帮助你合并不同的存储库。
否则,保留两个存储库并添加external定义(链接)以使它们共存可能更简单。这样你就不必费心去打破任何东西了。
答案 1 :(得分:3)
TortoiseSVN提供“复制并在此处添加这些文件”功能,但从SVN 1.5.5开始,不支持此功能。我还没有用1.6.0测试它
将文件从repo A右键拖动(不是正常的左键拖动)到repo B中的目录中并释放鼠标。将出现一个菜单,询问您要执行的操作。我认为有4种选择可供选择(除了普通的操作系统选项)。选择最合适的那个。
答案 2 :(得分:1)
如果,责任,你的意思是存储库(thanx,Blair),你发现你不能分支到另一个存储库。但是,如果您的代码和项目是相关的,那么将它们放在同一个存储库中是有意义的。您将需要了解有关svn的更多信息并更好地使用它。例如,“trunk”只是一个目录名,因此您可以拥有一个用于项目,另一个用于代码。虽然,使用这些特定的词语,我们大多数人都希望“代码”在“项目”中。
无论如何,如果你走出存储库,你将失去所有历史记录,并且你失去了分支或合并的所有机会。所以你需要重新思考你的组织。或者使用不同的版本控制系统来完成您想要的任务。
答案 3 :(得分:1)
官方svn-book指的是一个脚本,您可以使用该脚本简化此过程,称为svn_load_dirs.pl
。看看online manual
答案 4 :(得分:0)
您应该将所有代码放在一个存储库中。
看起来像这样:
name/trunk/src
name/branches/dev/src
或者,用你所说的话:
name/current-code/src
name/project/src
然后,您可以轻松地来回svn merge
。