1

我有以下情况:

我正在移植一个大型 repo,我想从中将一些目录分离到具有独立/单独历史记录的 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 提取多个 repos 到 git 并提交到 git 和 svn(记住那些较小的 git repos 中的历史与 svn 中的历史不同(子集))

编辑

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

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

1 回答 1

2

--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 之下,而不是之上。

于 2015-01-22T16:54:38.773 回答