gpt4 book ai didi

git - 从 svn 到 git,移动主干

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

我正在尝试将我的 svn 存储库切换到 git。这是一个旧存储库,以前的维护者之一为每个新版本移动了主干。例如,以前的存储库位于:

  • svn+ssh://svn.mycompany.com/project/release_1/trunk

现在,我们当前的中继线位于:

  • svn+ssh://svn.mycompany.com/project/release_N/trunk

当我 checkout SVN 第二个存储库时,我得到了完整的历史记录,包括复制之前的历史记录。但是,当我 git-svn 第二个存储库时,我没有旧的历史记录(来自 release_1,...)。第一次提交是将 release_{N-1} 复制到 release_N/trunk

这是我尝试过的:

  • git svn clone --no-minimize-url --authors-file my-authors-file svn+ssh://svn.mycompany.com/project/release_N/trunk my_project.git

由于这不起作用,我尝试了其他方法。假设“复制提交”是 K,我试过了:

  • git svn clone --no-minimize-url -r BASE:K --authors-file my-authors-file svn+ssh://svn.mycompany.com/project/release_N/trunk my_project.git<

这次 git-svn 没有找到任何提交。

你知道是否有魔术可以拥有完整的历史记录吗?

最佳答案

这是我对这个问题的理解:
你的历史分布在几个 svn 分支(碰巧都被称为主干)。迁移到 git 时,您会想要所有这些历史记录。

我认为以下内容可以解决您的问题:

git svn init my_project.git

git config svn-remote.svn.url svn+ssh://svn.mycompany.com/project
git config svn-remote.svn.fetch release_N/trunk:refs/remotes/trunk
git config svn-remote.svn.branches */trunk:refs/remotes/*
git config svn.authorsfile my-authors-file

git svn fetch

这将在您的 git 存储库中创建 release_N 分支作为主干,并将其余版本创建为不同的分支。

据我所知,你不能让一个 git svn 分支指向多个 url,我认为你正试图这样做。

关于git - 从 svn 到 git,移动主干,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19416084/

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