【发布时间】:2010-11-01 00:06:26
【问题描述】:
将 Visual Sourcesafe 存储库移至 Mercurial 的最佳方式是什么(我有兴趣保留所有历史记录)?
【问题讨论】:
标签: mercurial migration dvcs visual-sourcesafe
将 Visual Sourcesafe 存储库移至 Mercurial 的最佳方式是什么(我有兴趣保留所有历史记录)?
【问题讨论】:
标签: mercurial migration dvcs visual-sourcesafe
虽然我没有进行特定的转换,但我已使用 (IIRC) this script 从 VSS 转到 SVN。您可能需要研究裁缝并搜索 vss2hg。另请记住,通过 vss2svn + svn2hg 或类似的中间步骤可能是有意义的。
我要给出的主要建议是:编写转换脚本,以便您可以轻松地重新运行它。这将让您在夜间运行从 VSS 到 Hg 的转换,并确保在您扣动扳机之前一切都正确转换。
【讨论】:
我是 vss2hg.pl 脚本的作者,并使用它将许多项目从 VSS 迁移到 Mercurial。它有一个或两个小错误,其中一些 cmets 没有完全转换,但我没有看到任何其他问题。它可以转换完整的历史记录并解决 VSS 的问题,即用户的 PC 时钟可能会影响更改的顺序。
脚本的一个版本可用here。
【讨论】:
我使用了来自here 的 vss2hg.pl 脚本。这是一个Perl脚本,所以你需要先安装ActivePerl。
效果很好,但我遇到了日期问题。事实证明,该脚本支持三种日期格式。默认情况下,它设置为英国日期格式(在第 547 行)。其他两种日期格式在代码中被注释掉。启用美国日期格式后,该脚本毫无问题地转换了我的 SourceSafe 数据库。
【讨论】:
Mercurial wiki 有这个页面,可能会引起您的兴趣:https://www.mercurial-scm.org/wiki/SourceSafeConversion。我从来没有使用过 Visual source safe,所以我没有任何个人经验。
我还找到了关于该主题的mail from Patrick Mézard,但不幸的是,他写道,VSS 转换器会很困难。他还谈到了先转换为 Subversion,然后再从 Subversion 转换为 Mercurial。我想这意味着那里有 VSS -> SVN 转换。你可以自己google一下。
【讨论】:
我已经为客户完成了从 SourceSafe 到 Mercurial 的转换。我首先将 SourceSafe 数据库转换为 Subversion 存储库,然后使用 hg convert 扩展从 Subversion 转换为 Mercurial。详情请见my blog post。
【讨论】:
我刚刚尝试使用 vss2hg 并遇到了一个问题,即它只能拾取并转换了 1 个用户。这意味着我所有的变更集等都将不准确,因为我无法看到谁做了它们。这是因为我没有在 hg 中预先设置所有必需的用户吗?
【讨论】: