如何使用 git svn 克隆 svn repo 并能够提交给 git 和 svn?

How to clone svn repo with git svn and be able to commit to both git and svn?

我有以下场景:

我正在移植一个大型仓库,我想将其中的一些目录分离到具有 independent/separate 历史的 git 仓库中,例如:

git svn clone  --trunk=https://svne1.XXX.XXX.com/XXXX/svnroot/trunk/ https://svne1.XXX.XXX.com/XXXX/svnroot/trunk/src/project1 --username myname --no-metadata -A ~/Documents/users.txt

这将创建一个 git 存储库,其中包含从 src/project1 提取的源代码,并具有单独的历史记录,我可以将其推送到任何我想要的地方。

但我需要(一段时间内)也能够推送到 svn repo 并考虑到我只从我的项目中下载了一个目录的历史记录而不是主干它不是那么微不足道允许:

git svn rebase
git svn dcommit

那我该怎么做呢?从 svn 提取多个回购到 git 并提交到 git 和 svn(记住那些较小的 git 回购中的历史与 svn 中的历史不同(子集))

编辑:

启动 运行 克隆操作然后 git svn rebase 我会得到:

git svn rebase
Unable to determine upstream SVN information from working tree history

如果计划保持同步,则不应使用 --no-metadata

svn.noMetadata, svn-remote..noMetadata

       This gets rid of the git-svn-id: lines at the end of every commit.

       This option can only be used for one-shot imports as git svn will
       not be able to fetch again without metadata.

我不认为你还需要指定 --trunk 除非你想使用分支,如果是这样 - 希望主干低于主要 url,而不是高于。