我有以下场景:
我正在移植一个大型存储库,我想从中将一些目录分离到具有独立/单独历史记录的 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 存储库,并考虑到我只从项目中下载了一个目录的历史记录,而不是主干,所以允许它并不是那么简单:
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
除非你想使用分支,如果是这样的话 - 会期望主干位于主网址下方,而不是上方。