如何在现有项目上创建SVN版本控制?

3
在工作中,我们有一个非常大的项目(大约30,000个文件),由Borland StarTeam源代码控制系统管理。我们想迁移到SVN,但还有一些障碍需要克服。最重要的问题是如何在所有开发人员的虚拟机上设置存储库。
有两种基本方法可以在硬盘驱动器上设置新的SVN版本化文件夹(在Windows上使用TortoiseSVN)。您可以从存储库检出SVN项目,或者将现有代码上传到(可能为空的)存储库中,然后进行任何这些操作后,您都会得到一个带有SVN元数据文件夹的文件夹树。但是,我们有几十个开发人员,每个人都已经拥有整个项目的副本。我们真正想做的是上传一次,然后运行某种“将此现有文件夹与[wherever]处的存储库关联并同步它们”的操作。
SVN是否支持此功能?如果支持,如何操作?是否可以在TortoiseSVN中实现,还是需要其他工具?
1个回答

10

如果您要检出的仓库与本地硬盘上某个现有文件夹的内容相同,那么可以右键单击该文件夹并选择“SVN checkout...”来进行操作。Tortoise会首先将本地找到的每个文件与仓库中的版本进行比较,如果校验和匹配(我猜它是在执行某种校验和比较),则不会下载该文件,而是在检出协议中将其标记为“已版本化”,然后跳过下一个文件。

最终的结果应该是一个良好的检出。 据我所知,与仓库版本不匹配的文件将被覆盖,无法恢复。

在你所处的情况下,这种方法对我总是有效的;请确保备份您的数据,或者先在较小的子集上尝试一下。


这么简单吗?虽然已经有一段时间了,但我似乎记得以前尝试过这样做,但没有成功。也许自那时以来已经修复了? - Mason Wheeler
1
+1 我刚刚测试了一下,通过对SVN中现有目录进行SVN导出,使其不包含任何.svn元数据。然后在这个新导出的目录中,我从SVN中进行了相同目录的SVN检出。每个条目都被列为“版本化...”,而不是通常的“添加...”。如果有任何区别的话,我使用的是TortoiseSVN 1.6.6.17943。 - JMD
谢谢!我会在我们的项目上测试一下,如果有效的话,我会接受这个答案。 - Mason Wheeler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接