【问题标题】:Migrating from VSS to Git while keeping the history从 VSS 迁移到 Git,同时保留历史记录
【发布时间】:2018-09-06 08:20:15
【问题描述】:

我正在尝试将 Visual SourceSafe 存储库转换为 Git,同时保留准确的版本历史记录。所以我尝试使用https://github.com/trevorr/vss2git。它有效,但它没有保留历史。所以我尝试使用 TFS 作为中间人。我使用了最新版本的 TFS 及其升级向导,但它没有保留历史记录,所以我尝试使用 TFS 2013 (How to migrate VSS 2005 to TFS 2015?) 及其升级向导,但仍然没有历史记录。我现在很绝望,我不知道问题出在哪里,因为我什至分析了我的 VSS 存储库,没有发现任何错误。我读到我也可以尝试使用 SVN 作为中间人,所以我会这样做,但我持怀疑态度。

【问题讨论】:

    标签: git migration visual-sourcesafe


    【解决方案1】:

    这是几年前对我有用的解决方案。当我尝试提到的 vss2git 时,它已经在一个周末将我们的 9GB vss 数据库炸毁了 103GB,而没有到达终点。 所以我把 TFS 服务器(2010)作为中间人,它起作用了。 TFS 2010 可以直接导入 VSS 数据库,我不确定新的。同时,TFS 可以使用 git-tf 或 git-tfs 作为 git 远程。导入后,简单的git tfs clone已经完成了第二部分的业务。所以给你:

    1. 获取支持 VSS 导入的 TFS 版本。这个link 可以帮助你。
    2. 使用向导或命令行导入 VSS 数据库。
    3. here 获取 git-tfs
    4. (可选)修正提交日期 - 见下文。
    5. 做这样的事情git tfs clone http://tfs:8080/tfs/DefaultCollection $/some_project

    我能记得的唯一怪癖是 TFS 已将所有提交的日期设置为当前日期,并将原始 vss 日期放入 cmets。我已经直接在 TFS 的 SQLEXPRESS 数据库中修复了这个问题,如下所示:

    UPDATE tbl_ChangeSet 
    SET CreationDate =  CONVERT (datetime, Substring(Comment,2,19), 104)
    Where CreationDate > '2014-01-28' AND Comment LIKE '{%'
    

    请在查询中输入您自己的(最后一次 VSS 提交的)日期。

    https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/ms253060(v=vs.120)

    【讨论】:

    • 对我来说,我不得不将查询修改为: UPDATE tbl_ChangeSet SET CreationDate = CONVERT(datetime, Substring(Comment, 2, PATINDEX('%[~}]%', Comment) - 2) FROM tbl_ChangeSet WHERE Comment Like '{%'
    【解决方案2】:

    您可以尝试https://github.com/azarkevich/VssSvnConverter,但它对用户不友好。 (尽管它的名字可以将 VSS 转换为 Git)

    此外,此工具不会保留文件/目录移动/重命名的历史记录。文件将具有最新名称的历史记录。

    【讨论】:

      【解决方案3】:

      我找到了解决方案,并且我使用的程序确实有效。只是我试图移动太多数据,所以它只会出现故障而不存储历史记录。我不确定我可以安全移动的确切数据量,但我现在有一个历史记录

      【讨论】:

      • 嗯 - 你寻求帮助,然后自己想通了。如何实际分享解决方案,以便其他人可以从这个无用的(目前)线程中受益?
      • 我也有兴趣。您迁移了多少有效的数据?不敢相信我还在询问有关 VSS 6.0d 的问题。你保留了你的历史吗?请提供步骤。谢谢。
      • 当您需要帮助时,人们会帮助您。现在,当人们需要你的帮助时帮助他们。向我们展示你是如何做到的并分享它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 2018-06-01
      • 2011-04-22
      • 2020-12-01
      相关资源
      最近更新 更多