从VSS迁移到Subversion的最佳方式是什么?

25

我是一名单独开发者,希望从Visual Source Safe迁移到svn。

快速搜索出现了几种工具,但我没有看到明显的获胜者,并且我没有时间测试不同的工具。

是否有人成功完成此操作,并可以推荐一种方法?

10个回答

28
我建议将你的代码添加到一个新的Subversion存储库中,而不是从VSS导入。VSS有一个复杂的版本控制模型,不能很好地转换到其他许多系统上,从头开始通常是避免携带这些混乱的最佳方式。
如果需要保留历史记录,请将你的VSS存储库设置为只读。

3
在导入 SVN 之前,请确保清除 VSS 在您的本地仓库中留下的任何过时文件,并确保所有生成的文件也已删除。请注意不要改变原意。 - jodonnell
7
我完全不同意这个观点。我们公司使用VSS快近10年了,如果我们只是“重新开始”,那么将会有大量的历史记录丢失。我确实认为VSS很糟糕,但它总比没有好,而且仅仅抛弃多年的文件历史记录是一个巨大的错误。 - Tim Frey
8
只需将VSS中的内容冻结以备将来参考(即只读)(您几乎肯定不会查看!),然后用Subversion重新开始。 - Mitch Wheat
4
我们逐个迁移项目。首先将它们与Sourcesafe断开连接,然后删除所有Sourcesafe的“helper”文件,最后将它们导入SVN。我们保留了VSS服务器的历史记录以及那些不会迁移到SVN的旧项目。 - pirho
2
由于许可和支持原因,保留VSS软件可能不是一个选项。 - 8DH
向一个空仓库添加代码存在两个问题。首先,您将失去诸如“责备”之类的功能,这些功能允许您查看每行的编辑者是谁。使用两个工具而不是一个也更加困难。最后,您最不希望的是让VSS挂起来。 - drizin

8

CodePlex版本的VSStoSVN是我找到的最好的版本之一。我曾经使用PumaCode版本,但效果不佳,而这个版本运行顺畅。

http://vss2svn.codeplex.com/


7
我们最近在工作中进行了这样的迁移。我强烈建议:
  1. 只需从VSS添加新代码,接受先前的svn历史记录将留在旧的VSS存储库中。
  2. 如果您的VSS存储库在初始代码转储后仍在使用,请使用供应商分支迁移更改。也就是说,将您的VSS存储库视为供应商,并使用日期标签将更改合并到SVN存储库中。
稍微详细一些在这里

6

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

在我们不得不迁移客户存储库时,由于其他工具存在问题,我们开发了这个工具。

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

Eric。


1
我打算尝试一下。尽管我们之前放弃了VSS,没有进行转换,但我们决定我们确实需要一些来自它的信息。上面提到的Abstrakti.com公司似乎专门从事VSS的转换,即他们还有一个用于将VSS转换为GIT的应用程序Castellum。就在这个月,他们进行了维护更新! - AnneTheAgile
1
我尝试在一个旧的VSS仓库中使用它,它运行得非常完美! - tcbrazil

2

1

我曾经非常成功地使用过vss2svn。


1

我们下载并测试了几个迁移工具,我推荐Polarion SVNImporter

我们使用它来进行选择性迁移,将近1GB的代码从VSS6存储库迁移到Subversion。由于源代码是可用的,我们能够对其进行修补和定制以满足我们的特定需求(链接文件检测)。


1

我完全同意Jon Galloway的回答。 我也尝试使用vss2svn,但发现导入的存储库存在许多问题,最终决定不值得花费时间清理它。我们只是将代码副本导入了Subversion,并在需要查看旧版本代码的罕见场合下返回到VSS。

在我的上一家公司中,我们还使用了相同的方法从ClearCase迁移到Subversion,我记不起我们有任何需要返回到ClearCase查看历史记录的情况。

最大的问题是让所有人同时切换到新存储库,但作为单个开发人员,您不应该遇到任何问题!


1
在我的现任工作中,我们刚刚创建了一个Subversion仓库,设置了钩子脚本以忽略所有的VSS和生成文件,然后只是使用TortoiseSVN导入各种项目。效果还不错,我们在几个小时内就开始运行了。

0

我曾经使用过一些脚本(我记不清是哪一个)来协助进行VSS到SVN的转换。这有点痛苦和棘手,但最终还是成功了,并保留了所有历史记录。当时出于政治原因,我必须保留所有历史记录;如果按照我的方式,我可能会丢弃历史记录并将所有代码导入SVN。

同样出于政治原因,我编写了一些非常粗糙的脚本,使得VSS能够更新Subversion的更改。这些脚本一度有效,但每隔一两周就会出现故障,直到有人重命名目录或其他操作,整个系统才崩溃。到那时,继续使用Subversion已经可以接受了。


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