【问题标题】:Is there a way to migrate SourceSafe with HISTORY into SVN?有没有办法将 SourceSafe with HISTORY 迁移到 SVN 中?
【发布时间】:2009-01-06 17:09:11
【问题描述】:

有没有办法将带有 HISTORY 的 SourceSafe 迁移到 SVN 中?

理想情况下,我想使用 VisualSVN Server,但我真的不想丢失我的 SourceSafe 历史记录。如果必须的话,我会的。

【问题讨论】:

    标签: svn version-control visual-sourcesafe visualsvn visualsvn-server


    【解决方案1】:

    很久以前(似乎)我尝试使用vss2svn 将 SourceSafe DB 迁移到 subversion,但最终放弃了。有几个问题,IIRC:

    • 您必须确保 SS DB 是一致的(例如,Analyze 没有发现任何问题或能够修复它们)。
    • 迁移数据库花了很长时间,因为它非常大。
    • 由于解析日期的一些问题,最终迁移失败。我无法找到问题的原因,但我想这是因为我们使用 DD.MM.YYY 日期格式而不是美国日期格式。

    所以最后我们决定保持 SourceSafe DB 不变(只读),只是将当前版本迁移到 subversion。到目前为止,我们不得不返回 SourceSafe 进行检查的情况很少。

    希望这会有所帮助。

    顺便说一句:无论您使用 VisualSVN Server 还是直接使用 subversion (svnserver) 都没有关系。两种情况下的存储库格式相同。

    【讨论】:

    • 我认为数据格式问题发生在您尝试转换由存档创建的 VSS 数据库时,必须在原始数据库上完成。
    • 数据格式因地区设置而异。你试过这个product 吗?真的很好用。
    【解决方案2】:

    试试vss2svn 脚本。

    或者vss2svn 项目。

    【讨论】:

      【解决方案3】:

      我成功地转换了我们令人讨厌的 VSS 数据库,包括历史记录。我写博客的经验here. 转化亮点是:

      “所有的转换工具还要求源 VSS 数据库在转换之前没有损坏。这比您想象的要困难和耗时。在数据库副本上运行 VSS 分析工具显示数百个损坏,并且如果不蓝屏它正在运行的计算机就不会运行完成。

      为了解决这个问题,我们通过删除不想转换的目录来减少副本数据库。不幸的是,VSS 会在删除过程中报告每个损坏,导致用户必须无意识地单击这些消息框才能继续进行。

      达到这一点后,我们使用工具 VSS2SVN 创建了转储文件,这些转储文件已导入 Subversion。”

      【讨论】:

        【解决方案4】:

        我们使用 Polarion SVN Importer 将 VSS 迁移到具有完整历史记录的 SVN。

        【讨论】:

          【解决方案5】:

          是的,使用VSS2SVN project on Codeplex。我已对其进行了更新,以便在迁移到 SVN 时保持历史、cmets、作者和日期属性。需要更长的时间,但我认为这并不重要,因为这不是你每天都要做的事情。

          它还可以选择使用 VSS 中超过特定​​日期的文件更新存储库,因此您可以稍后更新初始转储。

          【讨论】:

            【解决方案6】:

            在我的公司,我反复尝试使用 vss2svn 将(大型)SourceSafe 存储库迁移到 Subversion。我什至对代码页支持做了一点贡献(我们的文件名是希腊语)。如果我没记错的话(这发生在去年春天;即 2009 年),我们的主要问题(让我们最终放弃迁移的问题)是在存储库的想要和不需要的部分之间交叉链接/移动的永久删除文件被阻塞迁移。

            我的建议:如果您无法在完全已分析的存储库中做到这一点,请不要浪费更多时间。只需画一条线并从一个新的 subversion 存储库开始。

            注意:在 SourceSafe 中永久删除文件会使该文件完全无法恢复,这与 CVS/SVN 类型的源代码控制系统完全不兼容(我想,其他源代码控制系统也是如此)。

            【讨论】:

            【解决方案7】:

            我的公司开发了一个 Source Safe 到 Subversion 的迁移工具: http://www.abstrakti.com/Products/Krepost

            此工具是在与其他所有工具出现问题后开发的,当时我们不得不迁移客户的存储库。此外,这是唯一可以将 SourceSafe 标签 导入 SVN 的工具。此外,它能够处理大多数 SourceSafe 存储库损坏,并为不想花几天时间调试 C# 代码的用户提供轻松的迁移。

            如果您有任何问题,请告诉我,我很乐意为您提供帮助。

            埃里克。

            【讨论】:

              【解决方案8】:

              我成功地使用vss2svn 脚本将几个源安全存储库迁移到 SVN。我的建议是,分小块进行——我们有很多小项目和几个中等规模的项目,它们都成功地转移到了 SVN。

              我有几个问题:

              • 大文件无法写入SVN转储文件格式,我提交了一个补丁让它工作,我想在我完成后有人写的更复杂一点。
              • 未正确复制根目录结构。 VSS 存储库被组织为 $/client/project。 svn 存储库最终被组织为 svn://server/randomdirectory/anotherrandomdirectory/client/project。所以我在导入之前通过编辑转储文件来修复这些问题(我认为它是 find replace "/randomdirectory' with ''。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-11-01
                • 2011-04-23
                • 1970-01-01
                相关资源
                最近更新 更多