有没有人成功将VSS 2005迁移到SVN?

时间:2009-05-15 18:59:24

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

我最近一直在玩SVN并且已经开始喜欢它的强大功能和用户体验,我们可以将它与我们的bug跟踪系统联系起来,以简化每个人的生活。所以我们已经决定将我们的VSS 2005设置迁移到SVN,而我现在正在崩溃。

似乎有很多工具声称能够完成从VSS 2005到SVN的迁移,但我无法弄清楚哪个是最好的或哪个将为我提供最完整的转换。我需要一个能够将整个历史记录迁移到一起而不仅仅是从VSS签出并检入SVN。

我发现Polarion SVN Importer看起来既强大又高度可配置,但是,我无法让这该死的东西工作,它抱怨它无法从VSS中的$ /拉取文件列表。如果我运行相同的命令它会手动绊倒,一切似乎运行正常,所以我无法弄明白。

是否有人成功将其源代码从VSS 2005迁移到SVN,如果有,您使用了哪些工具以及您的发现是什么?任何警告或陷阱都是最有用的,所以知道任何有用/令人惊讶的事情,或者是令人失望或只是明显歪曲。

5 个答案:

答案 0 :(得分:6)

在Codeplex上尝试VssMigrate的最新主干(控制台应用)修订版,重新排序历史记录并从VSS存储库重新生成变更集。它还将根据签入时间正确地订购您的修订版。

http vssmigrate.codeplex.com/SourceControl/changeset/view/16890

我希望这会有所帮助。可能需要对$ / import进行一些调整。

P.S。历史可以帮助您知道应该在一个步骤中指责谁,而不是必须根据导入发现注释是否正确,因此我发现它非常有用。拥有它比在旧代码中查找错误时更好。

P.P.S。您甚至可以使用新版本的VssMigrate将修订版重新导入到subversion存储库中,然后在上一个修订版的最后一个导入修订版之后合并所有修订版。唯一的缺点是每个人都必须从存储库中获得新的结账,因为修订的数量将大大减少。基本上,执行新的迁移; svnadmin dump将以前迁移的存储库从rev migrated + 1作为增量,然后将svnadmin加载到新迁移的存储库中。

答案 1 :(得分:4)

我大约一年前尝试过Polarion和vss2svn。

我们在VSS中有很多年的代码,我发现在完成所有配置和测试后我对结果并不完全满意,这个过程很长很脆弱,并且在结束,决定刚刚开始干净地导入最新的代码。

在过去的一年里我曾多次去寻找古老的历史,但实际上并没有那么多。开始新鲜的另一个好处是你的新SVN存储库将非常快!

答案 2 :(得分:3)

我上一次尝试这是多年前的事了。由于没有记录VSS文件格式,为了获得完整的历史记录,第三方转换程序必须使用VSS的API来获取每个文件的每个版本。我让这个转换在周末结束,看到它完成了多少(几个百分点),并计算出需要几周的日历时间才能完成(我们有多年的历史)。

因此,我们决定只将最新代码的快照移动到新版本控制系统中,并保留VSS数据库的存档,这是出于历史原因。

答案 3 :(得分:2)

与此问题类似 - 不同的迁移,但我也认为尝试捕获历史记录是浪费精力/时间。

What's the best way to migrate from SourceSafe to ClearCase?

答案 4 :(得分:2)

几个月前我成功地将VSS 2005迁移到了SVN。我使用了“VssMigrate.Tim2”工具,它现在显然在CodePlex上vssmigrate。它运作良好,没有重大问题。看起来修改和时间戳似乎并没有像我预期的那样有序,但这并不是什么大问题。

编辑:使用vssmigrate,您可以选择迁移特定的VSS路径(例如$ / GroupA / ProjectB),这样可以减少单个迁移的时间,并使整个过程不那么脆弱。我没有发现这个过程太长,尽管我们在VSS中只有大约六个月的数据。我设法在一个周末完成迁移和Apache + SVN设置。根据VSS存储库的大小,您可能希望创建多个SVN存储库,而不是大量的单个存储库。

我很高兴我们离开了VSS,虽然配置Apache + SVN并不是太有趣(试错)。我正在考虑GitMercurial,但当时没有可靠的TortoiseXxx工具或VS SCC插件。虽然现在Google code支持Mercurial并且TortoiseHg看起来不错,但我很想尝试Mercurial。