有没有一种方法可以将带有历史记录的SourceSafe迁移到SVN?

5
有没有一种方法可以将带有历史记录的SourceSafe迁移到SVN?最理想的情况是使用VisualSVN Server,但我不想失去我的SourceSafe历史记录。如果必须这样做,我会的。
8个回答

7
很久以前(好像是这样),我尝试使用vss2svn将SourceSafe数据库迁移到subversion,但最终放弃了。 我记得有几个问题:
  • 您必须确保SS数据库一致(例如,分析未发现任何问题或能够修复它们)。
  • 迁移数据库需要很长时间,因为它非常大。
  • 最后由于日期解析问题而导致迁移失败。 我无法找到问题的原因,但我猜测这是由于我们使用DD.MM.YYY日期格式而不是美国日期格式造成的。

所以最终我们决定保持SourceSafe数据库完整(只读),并将当前版本迁移到subversion中。 到目前为止,我们很少需要返回SourceSafe检查某些内容。

希望这可以帮助您。

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


我认为数据格式问题发生在您尝试将从存档中创建的VSS数据库转换时,必须在原始数据库上完成。 - JBrooks
数据格式的问题是由于区域设置引起的。你尝试过这个产品了吗?它运行得非常好。 - drizin

5

3
我成功地转换了我们那个糟糕的带有历史记录的VSS数据库。我在这里写了一篇关于此经验的博客文章(链接)。本次转换亮点如下:
所有的转换工具都要求源VSS数据库在转换前应该没有损坏。这证明比你想象的要困难和耗时得多。在副本数据库上运行VSS分析工具显示有数百个损坏,而且如果不蓝屏运行它的计算机,就无法完成操作。
为了解决这个问题,我们通过删除不想转换的目录来减少副本数据库。不幸的是,在删除过程中,VSS会报告每个损坏,导致数百个消息框,用户必须毫无意义地点击以继续过程。
一旦达到这个点,我们使用工具VSS2SVN创建转储文件,然后将其导入Subversion。

2

1
在我的公司,我曾多次尝试使用vss2svn将一个(大型)SourceSafe代码库迁移到Subversion。我甚至为代码页支持做出了一点贡献(我们的文件名是希腊语)。如果我没记错的话(这发生在2009年春季),我们最主要的问题(导致我们最终放弃迁移)是永久删除的文件跨越想要和不想要的代码库部分而被阻止迁移。
我的建议是:如果你无法在完全“分析”过的代码库中完成迁移,请不要浪费更多时间。直接划一条线,开始一个新的Subversion代码库。
注意:在SourceSafe中永久删除文件会使文件完全无法恢复,这与CVS/SVN类型的源代码控制系统(以及其他源代码控制系统)完全不兼容。

2
你好,我是你提到的脚本的作者;它现在位于 https://github.com/irontoby/vss2svn(pumacode.org 网站已关闭)。 - Tobias J

1

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

在我们不得不迁移客户端仓库时,由于其他每个工具都有问题,所以我们开发了这个工具。此外,这是唯一一个可以将SourceSafe标签导入SVN的工具。此外,它能够处理大多数SourceSafe仓库损坏的情况,并为不想花费几天时间调试C#代码的用户提供无痛迁移。

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

Eric。


1

我成功地使用vss2svn脚本将几个源代码库迁移到了SVN。我的建议是,分批进行 - 我们有很多小项目和几个中等规模的项目,所有这些项目都成功地移动到了SVN。

我遇到了一些问题:

  • 大文件无法写入SVN转储文件格式,我提交了一个补丁来解决这个问题,我认为在我完成后有人写得更加复杂。
  • 根目录结构没有正确地复制过来。VSS存储库的组织形式为$/client/project。svn存储库最终被组织为svn://server/randomdirectory/anotherrandomdirectory/client/project。因此,我通过在导入之前编辑转储文件来修复了这些问题(我认为是查找替换“/randomdirectory”为“”)。

1

是的,使用Codeplex上的VSS2SVN项目。我已经更新了它,使其在迁移到SVN时保留历史记录、注释、作者和日期属性。需要花费一些时间,但我认为这并不重要,因为这不是每天都要做的事情。

它还有一个选项,可以在某个日期之后从VSS更新存储库中的文件,因此您可以稍后更新初始转储。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接