【发布时间】:2009-01-06 17:09:11
【问题描述】:
有没有办法将带有 HISTORY 的 SourceSafe 迁移到 SVN 中?
理想情况下,我想使用 VisualSVN Server,但我真的不想丢失我的 SourceSafe 历史记录。如果必须的话,我会的。
【问题讨论】:
标签: svn version-control visual-sourcesafe visualsvn visualsvn-server
有没有办法将带有 HISTORY 的 SourceSafe 迁移到 SVN 中?
理想情况下,我想使用 VisualSVN Server,但我真的不想丢失我的 SourceSafe 历史记录。如果必须的话,我会的。
【问题讨论】:
标签: svn version-control visual-sourcesafe visualsvn visualsvn-server
很久以前(似乎)我尝试使用vss2svn 将 SourceSafe DB 迁移到 subversion,但最终放弃了。有几个问题,IIRC:
所以最后我们决定保持 SourceSafe DB 不变(只读),只是将当前版本迁移到 subversion。到目前为止,我们不得不返回 SourceSafe 进行检查的情况很少。
希望这会有所帮助。
顺便说一句:无论您使用 VisualSVN Server 还是直接使用 subversion (svnserver) 都没有关系。两种情况下的存储库格式相同。
【讨论】:
我成功地转换了我们令人讨厌的 VSS 数据库,包括历史记录。我写博客的经验here. 转化亮点是:
“所有的转换工具还要求源 VSS 数据库在转换之前没有损坏。这比您想象的要困难和耗时。在数据库副本上运行 VSS 分析工具显示数百个损坏,并且如果不蓝屏它正在运行的计算机就不会运行完成。
为了解决这个问题,我们通过删除不想转换的目录来减少副本数据库。不幸的是,VSS 会在删除过程中报告每个损坏,导致用户必须无意识地单击这些消息框才能继续进行。
达到这一点后,我们使用工具 VSS2SVN 创建了转储文件,这些转储文件已导入 Subversion。”
【讨论】:
我们使用 Polarion SVN Importer 将 VSS 迁移到具有完整历史记录的 SVN。
【讨论】:
是的,使用VSS2SVN project on Codeplex。我已对其进行了更新,以便在迁移到 SVN 时保持历史、cmets、作者和日期属性。需要更长的时间,但我认为这并不重要,因为这不是你每天都要做的事情。
它还可以选择使用 VSS 中超过特定日期的文件更新存储库,因此您可以稍后更新初始转储。
【讨论】:
在我的公司,我反复尝试使用 vss2svn 将(大型)SourceSafe 存储库迁移到 Subversion。我什至对代码页支持做了一点贡献(我们的文件名是希腊语)。如果我没记错的话(这发生在去年春天;即 2009 年),我们的主要问题(让我们最终放弃迁移的问题)是在存储库的想要和不需要的部分之间交叉链接/移动的永久删除文件被阻塞迁移。
我的建议:如果您无法在完全已分析的存储库中做到这一点,请不要浪费更多时间。只需画一条线并从一个新的 subversion 存储库开始。
注意:在 SourceSafe 中永久删除文件会使该文件完全无法恢复,这与 CVS/SVN 类型的源代码控制系统完全不兼容(我想,其他源代码控制系统也是如此)。
【讨论】:
我的公司开发了一个 Source Safe 到 Subversion 的迁移工具: http://www.abstrakti.com/Products/Krepost
此工具是在与其他所有工具出现问题后开发的,当时我们不得不迁移客户的存储库。此外,这是唯一可以将 SourceSafe 标签 导入 SVN 的工具。此外,它能够处理大多数 SourceSafe 存储库损坏,并为不想花几天时间调试 C# 代码的用户提供轻松的迁移。
如果您有任何问题,请告诉我,我很乐意为您提供帮助。
埃里克。
【讨论】:
我成功地使用vss2svn 脚本将几个源安全存储库迁移到 SVN。我的建议是,分小块进行——我们有很多小项目和几个中等规模的项目,它们都成功地转移到了 SVN。
我有几个问题:
【讨论】: