【问题标题】:How can I create SVN versioning on top of an existing project?如何在现有项目之上创建 SVN 版本控制?
【发布时间】:2010-01-19 22:50:07
【问题描述】:

在工作中,我们有一个由 Borland StarTeam 源代码控制系统管理的非常大的项目(大约 30,000 个文件)。我们想迁移到 SVN,但有一些障碍。最重要的问题是在所有开发人员的虚拟机上设置存储库。

有两种基本方法可以在硬盘上设置新的 SVN 版本文件夹。 (在 Windows 上,使用 TortoiseSVN。)您可以从存储库中签出 SVN 项目,或者获取现有代码并将其上传到(可能是空的)存储库,在这些操作中的任何一个之后,您最终都会得到一个带有 SVN 的文件夹树元数据文件夹。但是我们有几十个开发人员,他们每个人都已经拥有该项目的完整副本。我们真正想做的是上传一次,然后运行某种“将这个现有文件夹与 [wherever] 的存储库关联并同步它们”操作。

SVN 支持这个吗?如果是这样,如何以及是否可以在 TortoiseSVN 中进行,还是需要其他工具?

【问题讨论】:

    标签: svn tortoisesvn


    【解决方案1】:

    应该在硬盘驱动器上的现有文件夹上右键单击“SVN 签出...”,该文件夹的内容与您要签出的存储库相同。 Tortoise 在本地找到的每个文件,都会首先与存储库中的版本进行比较,如果校验和匹配(我假设它正在进行某种校验和比较),则不下载它,而是在结帐协议中将其标记为“版本化”并跳到下一个文件。

    最终结果应该是一个不错的结帐。 据我所知,与存储库中的版本不匹配的文件将被覆盖,并且无法恢复。

    在您所处的情况下,这一直对我有用;确保您有数据备份,或先在较小的子集上尝试。

    【讨论】:

    • 就这么简单吗?已经有一段时间了,但我似乎记得以前尝试过这样做但没有成功。也许从那以后它就被修复了?
    • +1 我刚刚通过对 SVN 中的现有目录执行 SVN 导出测试了这一点,因此它不包含 .svn 元数据。然后进入那个新导出的目录,我从 SVN 对同一目录进行了 SVN Checkout。每个条目都被列为“Versioned ...”而不是通常的“Added ...”如果有任何区别,我使用的是 TortoiseSVN 1.6.6.17943。
    • 谢谢!我会在我们的项目上测试它,如果它有效,我会接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    相关资源
    最近更新 更多