gpt4 book ai didi

git - 从 SVN 迁移到 GIT

转载 作者:太空狗 更新时间:2023-10-29 14:36:16 29 4
gpt4 key购买 nike

我是这样从SVN迁移到GIT的

git svn init https://svn...
git svn fetch

我可以更改迁移提交,而不是

“提交到 SVN” 在 GIT 中是“SVN 中的修订号 - 提交到 SVN”

例如

541 - Init module ABC

最佳答案

对于一次性迁移 git-svn 不是 转换存储库或部分存储库的正确工具。如果您想使用 Git 作为现有 SVN 服务器的前端,这是一个很好的工具,但是对于一次性转换,您应该使用 git-svn ,但是svn2git这更适合这个用例。

有很多工具叫做 svn2git ,可能最好的是来自 https://github.com/svn-all-fast-export/svn2git 的 KDE。 .我强烈建议使用 svn2git工具。这是我所知道的最好的可用规则文件,而且您可以非常灵活地使用它的规则文件。

您将能够轻松配置 svn2git s 规则文件以从当前 SVN 布局生成您想要的结果,包括可能存在的任何复杂历史记录。

使用 KDE svn2git你也可以使用 --msg-filter修改提交消息的参数,从而在主题行中引入修订 ID。

如果您不是 100% 了解存储库的历史,svneverever来自 http://blog.hartwork.org/?p=763是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查它的历史。


尽管git-svn (或您使用的 svn2git)更容易入手,以下是使用 KDE svn2git 的更多原因而不是 git-svn除了它的灵 active 之外,它更优越:

  • 历史被svn2git重建得更好更干净了| (如果使用了正确的),对于具有分支和 merge 等的更复杂的历史尤其如此
  • 标签是真正的标签,而不是 Git 中的分支
  • git-svn标签包含一个额外的空提交,这也使它们不属于分支,所以一个正常的 fetch在您提供 --tags 之前不会得到它们对于命令,默认情况下也只获取指向已获取分支的标签。使用适当的 svn2git 标签是它们所属的地方
  • 如果您在 SVN 中更改布局,您可以使用 svn2git 轻松配置它, 与 git-svn你最终会失去历史
  • svn2git您还可以轻松地将一个 SVN 存储库拆分为多个 Git 存储库
  • 或将同一 SVN 根目录中的多个 SVN 存储库轻松 merge 到一个 Git 存储库中
  • 使用正确的 svn2git,转换速度快了千亿倍比git-svn

你看,git-svn 有很多原因更糟的是 KDE svn2git是优越的。 :-)

关于git - 从 SVN 迁移到 GIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44456237/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com