I've been playing around with SVN for the last little while and have come to love its power and user experience and that we can tie it into our bug tracking system to simplify everyone's lives. So it's come to the time that we've decided to migrate our VSS 2005 setup across to SVN and I am now coming unstuck.
我最近一直在玩SVN并且已经开始喜欢它的功能和用户体验,我们可以将它与我们的bug跟踪系统联系起来,以简化每个人的生活。所以我们已经决定将我们的VSS 2005设置迁移到SVN,现在我正在解决这个问题。
It seems there are a number of tools out there that claim to be able to complete the migration from VSS 2005 to SVN, but I can't figure out which is the best one or which will provide me with the most complete transition. I need one that will migrate the full history across rather than just checking out from VSS and checking into SVN.
似乎有许多工具声称能够完成从VSS 2005到SVN的迁移,但我无法弄清楚哪个是最好的或哪个将为我提供最完整的转换。我需要一个可以迁移完整历史记录而不仅仅是从VSS签出并检入SVN。
I found Polarion SVN Importer which looks both powerful and highly configurable, however, I can't get the damn thing to work, it complains that it can't pull the file list from $/ in VSS. If I run the same command it's tripping up on manually, everything seems to run okay, so I can't figure it out.
我发现Polarion SVN Importer看起来既强大又高度可配置,但是,我无法让这该死的东西工作,它抱怨它无法从VSS中的$ /中拉出文件列表。如果我运行相同的命令它会手动绊倒,一切似乎运行正常,所以我无法弄明白。
Has anyone successfully migrated their source from VSS 2005 to SVN and if so what tools did you use and what were your findings? Any caveats or gotchas would be most useful so know as well as anything that was useful/surprising or was a let down or just plain misrepresented.
有没有人成功地将他们的源代码从VSS 2005迁移到SVN,如果有的话,你使用了什么工具,你的发现是什么?任何警告或陷阱都是最有用的,所以知道任何有用/令人惊讶的事情,或者是令人失望或只是明显歪曲。
5 个解决方案
#1
Try the lastest trunk (console app) revision for VssMigrate on Codeplex to re-order your history and re-generate changesets from your VSS repository. It will also order your revisions correctly based on the time they were checked in.
尝试使用Codeplex上的VssMigrate的最新主干(控制台应用程序)修订版来重新排序历史记录并从VSS存储库重新生成变更集。它还将根据签入时间正确地订购您的修订版。
http vssmigrate.codeplex.com/SourceControl/changeset/view/16890
I hope this helps. It might take some tweaking on the $/ import.
我希望这有帮助。可能需要对$ / import进行一些调整。
P.S. the history helps you know who to blame in a single step rather than having to discover if the annotation is correct based on an import, so I find it rather useful. Much better to have it than not have it when finding bugs in older code.
附:历史可以帮助您知道在一个步骤中责怪谁,而不是必须根据导入发现注释是否正确,所以我发现它非常有用。拥有它比在旧代码中查找错误时更好。
P.P.S. You can even use the new version of VssMigrate to re-import the revisions to a subversion repository and then merge in all of the revisions after the last import revision from your previous revision. The only downside is that everybody will have to get a fresh check-out from the repository because the number of revisions will be dramatically reduced. Basically, perfom a new migration; svnadmin dump active previously migrated repository from rev migrated+1 as incremental and then svnadmin load into the newly migrated repository.
P.P.S.您甚至可以使用新版本的VssMigrate将修订版重新导入到subversion存储库,然后在上一次修订版的最后一次导入修订后合并所有修订版。唯一的缺点是每个人都必须从存储库中获得新的结账,因为修订的数量将大大减少。基本上,执行新的迁移; svnadmin dump将以前迁移的存储库从rev migrated + 1作为增量,然后将svnadmin加载到新迁移的存储库中。
#2
I tried both Polarion and vss2svn about a year ago.
大约一年前我试过Polarion和vss2svn。
We had many years of code in VSS, and I found that after all of the configuration and testing that I was not entirely satisfied with the results, the process was long and fragile, and in the end, decided to just start with a clean import of the latest code.
我们在VSS中有多年的代码,我发现在完成所有配置和测试之后我对结果并不完全满意,这个过程很长而且很脆弱,最后决定刚刚开始干净的导入最新的代码。
There have been a few times over the last year where I went looking for old history, but not really that much. Another plus of starting fresh is that your new SVN repository will be very fast!
在过去的一年中,我曾多次去寻找古老的历史,但实际上并没有那么多。开始新鲜的另一个好处是你的新SVN存储库将非常快!
#3
The last time I tried this was years ago. Because the VSS file format wasn't documented, to get a complete history the 3rd-party conversion program had to use VSS's API to get each version of each file. I let that conversion run over the week-end, saw how much it had accomplished (a few percent), and calculated that it would take weeks of calendar time to complete (we had years of history).
我最后一次尝试这是多年前的事了。由于没有记录VSS文件格式,要获得完整的历史记录,第三方转换程序必须使用VSS的API来获取每个文件的每个版本。我让这个转换在周末结束,看到它完成了多少(几个百分点),并计算出需要几周的日历时间才能完成(我们有多年的历史)。
We therefore decided to move only a snapshot of the latest code into the new version control system, and kept an archive of the VSS database for history's sake.
因此,我们决定仅将最新代码的快照移动到新版本控制系统中,并保留VSS数据库的存档以供历史使用。
#4
Similar to this question - different migration, but I also think it is a waste of effort/time to try to capture the history.
与此问题类似 - 不同的迁移,但我也认为尝试捕获历史是浪费精力/时间。
What's the best way to migrate from SourceSafe to ClearCase?
从SourceSafe迁移到ClearCase的最佳方法是什么?
#5
I successfully migrated VSS 2005 to SVN several months ago. I used the "VssMigrate.Tim2" tool which is apparently on CodePlex now as vssmigrate. It worked fine with no major issues. It did seem like the revisions and timestamps weren't ordered quite like I expected, but it wasn't a big deal.
几个月前我成功地将VSS 2005迁移到了SVN。我使用了“VssMigrate.Tim2”工具,它现在显然在CodePlex上作为vssmigrate。它运作良好,没有重大问题。看起来修改和时间戳似乎没有像我预期的那样有序,但这并不是什么大问题。
EDIT: With vssmigrate, you can choose to migrate a specific VSS path (e.g. $/GroupA/ProjectB) which reduces the time for individual migration and makes the overall process less fragile. I didn't find the process too long although we only had about six months of data in VSS. I managed to complete the migration and Apache+SVN setup over a weekend. Depending on the size of your VSS repository, you may want to create multiple SVN repositories instead of a massive single repository.
编辑:使用vssmigrate,您可以选择迁移特定的VSS路径(例如$ / GroupA / ProjectB),这样可以减少单个迁移的时间,并使整个过程不那么脆弱。我没有发现这个过程太长,尽管我们在VSS中只有大约六个月的数据。我设法在一个周末完成迁移和Apache + SVN设置。根据VSS存储库的大小,您可能希望创建多个SVN存储库而不是大型单个存储库。
I am extremely glad we moved away from VSS, although configuring Apache+SVN wasn't too much fun (trial and error). I was considering Git or Mercurial, but neither had a reliable TortoiseXxx tool or VS SCC plugin at the time. Although now that Google code has supported Mercurial and TortoiseHg looks good, I'm tempted to try Mercurial soon.
我很高兴我们离开了VSS,虽然配置Apache + SVN并不是太有趣(试错)。我正在考虑Git或Mercurial,但当时没有可靠的TortoiseXxx工具或VS SCC插件。虽然现在谷歌代码支持Mercurial和TortoiseHg看起来不错,但我很想尝试Mercurial。
#1
Try the lastest trunk (console app) revision for VssMigrate on Codeplex to re-order your history and re-generate changesets from your VSS repository. It will also order your revisions correctly based on the time they were checked in.
尝试使用Codeplex上的VssMigrate的最新主干(控制台应用程序)修订版来重新排序历史记录并从VSS存储库重新生成变更集。它还将根据签入时间正确地订购您的修订版。
http vssmigrate.codeplex.com/SourceControl/changeset/view/16890
I hope this helps. It might take some tweaking on the $/ import.
我希望这有帮助。可能需要对$ / import进行一些调整。
P.S. the history helps you know who to blame in a single step rather than having to discover if the annotation is correct based on an import, so I find it rather useful. Much better to have it than not have it when finding bugs in older code.
附:历史可以帮助您知道在一个步骤中责怪谁,而不是必须根据导入发现注释是否正确,所以我发现它非常有用。拥有它比在旧代码中查找错误时更好。
P.P.S. You can even use the new version of VssMigrate to re-import the revisions to a subversion repository and then merge in all of the revisions after the last import revision from your previous revision. The only downside is that everybody will have to get a fresh check-out from the repository because the number of revisions will be dramatically reduced. Basically, perfom a new migration; svnadmin dump active previously migrated repository from rev migrated+1 as incremental and then svnadmin load into the newly migrated repository.
P.P.S.您甚至可以使用新版本的VssMigrate将修订版重新导入到subversion存储库,然后在上一次修订版的最后一次导入修订后合并所有修订版。唯一的缺点是每个人都必须从存储库中获得新的结账,因为修订的数量将大大减少。基本上,执行新的迁移; svnadmin dump将以前迁移的存储库从rev migrated + 1作为增量,然后将svnadmin加载到新迁移的存储库中。
#2
I tried both Polarion and vss2svn about a year ago.
大约一年前我试过Polarion和vss2svn。
We had many years of code in VSS, and I found that after all of the configuration and testing that I was not entirely satisfied with the results, the process was long and fragile, and in the end, decided to just start with a clean import of the latest code.
我们在VSS中有多年的代码,我发现在完成所有配置和测试之后我对结果并不完全满意,这个过程很长而且很脆弱,最后决定刚刚开始干净的导入最新的代码。
There have been a few times over the last year where I went looking for old history, but not really that much. Another plus of starting fresh is that your new SVN repository will be very fast!
在过去的一年中,我曾多次去寻找古老的历史,但实际上并没有那么多。开始新鲜的另一个好处是你的新SVN存储库将非常快!
#3
The last time I tried this was years ago. Because the VSS file format wasn't documented, to get a complete history the 3rd-party conversion program had to use VSS's API to get each version of each file. I let that conversion run over the week-end, saw how much it had accomplished (a few percent), and calculated that it would take weeks of calendar time to complete (we had years of history).
我最后一次尝试这是多年前的事了。由于没有记录VSS文件格式,要获得完整的历史记录,第三方转换程序必须使用VSS的API来获取每个文件的每个版本。我让这个转换在周末结束,看到它完成了多少(几个百分点),并计算出需要几周的日历时间才能完成(我们有多年的历史)。
We therefore decided to move only a snapshot of the latest code into the new version control system, and kept an archive of the VSS database for history's sake.
因此,我们决定仅将最新代码的快照移动到新版本控制系统中,并保留VSS数据库的存档以供历史使用。
#4
Similar to this question - different migration, but I also think it is a waste of effort/time to try to capture the history.
与此问题类似 - 不同的迁移,但我也认为尝试捕获历史是浪费精力/时间。
What's the best way to migrate from SourceSafe to ClearCase?
从SourceSafe迁移到ClearCase的最佳方法是什么?
#5
I successfully migrated VSS 2005 to SVN several months ago. I used the "VssMigrate.Tim2" tool which is apparently on CodePlex now as vssmigrate. It worked fine with no major issues. It did seem like the revisions and timestamps weren't ordered quite like I expected, but it wasn't a big deal.
几个月前我成功地将VSS 2005迁移到了SVN。我使用了“VssMigrate.Tim2”工具,它现在显然在CodePlex上作为vssmigrate。它运作良好,没有重大问题。看起来修改和时间戳似乎没有像我预期的那样有序,但这并不是什么大问题。
EDIT: With vssmigrate, you can choose to migrate a specific VSS path (e.g. $/GroupA/ProjectB) which reduces the time for individual migration and makes the overall process less fragile. I didn't find the process too long although we only had about six months of data in VSS. I managed to complete the migration and Apache+SVN setup over a weekend. Depending on the size of your VSS repository, you may want to create multiple SVN repositories instead of a massive single repository.
编辑:使用vssmigrate,您可以选择迁移特定的VSS路径(例如$ / GroupA / ProjectB),这样可以减少单个迁移的时间,并使整个过程不那么脆弱。我没有发现这个过程太长,尽管我们在VSS中只有大约六个月的数据。我设法在一个周末完成迁移和Apache + SVN设置。根据VSS存储库的大小,您可能希望创建多个SVN存储库而不是大型单个存储库。
I am extremely glad we moved away from VSS, although configuring Apache+SVN wasn't too much fun (trial and error). I was considering Git or Mercurial, but neither had a reliable TortoiseXxx tool or VS SCC plugin at the time. Although now that Google code has supported Mercurial and TortoiseHg looks good, I'm tempted to try Mercurial soon.
我很高兴我们离开了VSS,虽然配置Apache + SVN并不是太有趣(试错)。我正在考虑Git或Mercurial,但当时没有可靠的TortoiseXxx工具或VS SCC插件。虽然现在谷歌代码支持Mercurial和TortoiseHg看起来不错,但我很想尝试Mercurial。