如果源SVN repo有多个分支(和标记),则git svn clone
--stdlayout
会为我提供多个分支。
我想将所有推送到另一个git repo。 git svn clone
似乎确实检索了所有版本的所有历史记录。这是为git push提供更好的指示吗?
这是我可能误导的工作流程意图。
以下是运行git branch -a
后git svn clone
的输出。
/Users/benson/x/tsk/tsk_git_svn git branch -a
* master
remotes/origin/master
remotes/sleuthkit-3.0
remotes/sleuthkit-3.1
remotes/tags/sleuthkit-3.0.0
remotes/tags/sleuthkit-3.0.1
remotes/tags/sleuthkit-3.1.0
remotes/tags/sleuthkit-3.1.0b1
remotes/tags/sleuthkit-3.1.1
remotes/tags/sleuthkit-3.1.2
remotes/tags/sleuthkit-3.1.3
remotes/tags/sleuthkit-3.1.3b1
remotes/tags/sleuthkit-3.2.0b1
remotes/tags/sleuthkit-3.2.0b2
remotes/trunk
答案 0 :(得分:2)
您可以尝试 git push --mirror
,以确保将所有引用从一个git repo推送到另一个:
来自git push
:
--mirror
指定
refs/
下的所有引用(包括但不限于refs/heads/
,refs/remotes/
和refs/tags/
),而不是将每个引用命名为push。到远程存储库。
新创建的本地引用将被推送到远程端,本地更新的引用将在远程端强制更新,并且已删除的引用将从远程端删除。
但我会recommend svn2git
(如果你不打算定期更新你的svn回购),为了获得标签的实际标签而不是“分支”。
答案 1 :(得分:0)
如果您有权访问SVN服务器,我建议采用两步解决方案:
$ subgit install path/to/svn/repository
$ cd path/to/svn/repository
$ git push --all <target Git repository>
请注意,目标Git存储库应该是裸的以避免问题(由git init --bare命令创建)