我正在尝试将Visual SourceSafe存储库转换为Git,同时保留确切的版本历史记录。因此,我尝试使用https://github.com/trevorr/vss2git。它起作用了,但是并没有保留历史。所以我尝试使用TFS作为中间人。我使用了TFS的最新版本及其升级向导,但没有保留历史记录,因此我尝试使用TFS 2013(How to migrate VSS 2005 to TFS 2015?)及其升级向导,但仍然没有历史记录。我现在非常绝望,而且我什至在分析VSS存储库时也不知道问题出在哪里,没有发现错误。我已经读过我也可以尝试使用SVN作为中间人,所以我会这样做,但我对此表示怀疑。
答案 0 :(得分:0)
您可以尝试https://github.com/azarkevich/VssSvnConverter,但它对用户不友好。 (尽管它的名称可以将VSS转换为Git)
此工具也不保留文件/目录移动/重命名的历史记录。文件将具有最新名称的历史记录。
答案 1 :(得分:0)
我找到了解决方案,并且我使用的程序也能正常工作。只是我试图移动太多数据,所以它只会出现故障,而不会存储历史记录。我不确定我可以安全地移动多少数据,但是我现在有一个历史记录
答案 2 :(得分:0)
这是几年前为我工作的解决方案。当我尝试提到的vss2git时,它在一个周末内将我们的9GB vss数据库的容量提高到了103GB,而没有达到终点。
因此,我以TFS服务器(2010年)为中间人,它可以正常工作。 TFS 2010可以直接导入VSS数据库,我不确定较新的数据库。同时,TFS可以用作使用git-tf或git-tfs的git远程服务器。导入后,简单的git tfs clone
完成了业务的第二部分。所以你去了:
git tfs clone http://tfs:8080/tfs/DefaultCollection $/some_project
我唯一记得的怪癖是,TFS将所有提交的日期设置为当前日期,并将原始vss日期放入注释中。我已经像这样直接在TFS的SQLEXPRESS数据库中修复了此问题:
UPDATE tbl_ChangeSet
SET CreationDate = CONVERT (datetime, Substring(Comment,2,19), 104)
Where CreationDate > '2014-01-28' AND Comment LIKE '{%'
请在查询中输入您自己的日期(最后一次VSS提交)。