19

将 Visual Sourcesafe 存储库移动到 Mercurial 的最佳方法是什么(我有兴趣保留所有历史记录)?

4

6 回答 6

14

虽然我没有进行特定的转换,但我已经使用 (IIRC) this script从 VSS 转到了 SVN 。您可能需要研究裁缝并搜索 vss2hg。还要记住,通过 vss2svn + svn2hg 或类似的中间步骤可能是有意义的。

不过,我给出的主要建议是:编写转换脚本,以便您可以轻松地重新运行它。这将让您在夜间运行从 VSS 到 Hg 的转换,并确保在您扣动扳机之前一切都正确转换。

于 2009-06-07T13:53:26.763 回答
13

我是 vss2hg.pl 脚本的作者,并使用它将许多项目从 VSS 迁移到 Mercurial。它有一个或两个小错误,其中一些评论没有完全转换,但我没有看到任何其他问题。它可以转换完整的历史记录并解决 VSS 的问题,即用户的 PC 时钟可能会影响更改的顺序。

此处提供了该脚本的一个版本。

于 2010-03-23T13:17:05.623 回答
6

我从这里使用了 vss2hg.pl 脚本。它是一个 Perl 脚本,所以你需要先安装ActivePerl

它工作得很好,但我遇到了日期问题。事实证明,该脚本支持三种日期格式。默认情况下,它设置为英国日期格式(在第 547 行)。其他两种日期格式在代码中被注释掉。启用美国日期格式后,该脚本毫无问题地转换了我的 SourceSafe 数据库。

于 2009-06-25T15:48:33.970 回答
5

Mercurial wiki 有这个页面,可能会感兴趣:https ://www.mercurial-scm.org/wiki/SourceSafeConversion 。我从来没有使用过 Visual source safe,所以我没有任何个人经验。

我还找到了来自 Patrick Mézard的关于该主题的邮件,但不幸的是,他写道 VSS 转换器会很困难。他还谈到了先转换为 Subversion,然后再从 Subversion 转换为 Mercurial。我想这意味着那里有 VSS -> SVN 转换。你可以自己google一下。

于 2009-06-07T13:54:19.663 回答
3

我已经为客户完成了从 SourceSafe 到 Mercurial 的转换。我首先将 SourceSafe 数据库转换为 Subversion 存储库,然后使用 hg convert 扩展从 Subversion 转换为 Mercurial。有关详细信息,请参阅我的博客文章

于 2010-12-04T17:47:00.907 回答
0

我刚刚尝试使用 vss2hg 并遇到了一个问题,它只接收并转换了 1 个用户。这意味着我所有的变更集等都将不准确,因为我无法看到谁做了它们。这是因为我没有在 hg 中预先设置所有必需的用户吗?

于 2010-05-25T16:16:23.367 回答