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

问题描述 投票:0回答:1

我有以下场景:

我正在移植一个大型存储库,我想从中将一些目录分离到具有独立/单独历史记录的 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
git svn git-svn porting dcommit
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
除非你想使用分支,如果是这样的话 - 会期望主干位于主网址下方,而不是上方。

© www.soinside.com 2019 - 2024. All rights reserved.