如何同步两个git-svn仓库

3

我需要使用一个Subversion仓库,并且希望使用git-svn。由于我经常切换电脑,所以我需要提交我的更改并更新另一台电脑。有时更改后的代码可能不起作用,因此我的想法是创建两个git-svn仓库,并使用推/拉来同步它们,有时将它们(或其中之一)与svn仓库同步。这样做是否可行?

将仓库转换为git不是一个选项。(遗憾)

2个回答

2
如果您需要在两台计算机上将Git仓库与SVN同步,那么是的:每个仓库都将是一个“git-svn”仓库。您需要创建2个仓库,然后在git-svn仓库的基础上创建自己的一组git分支。
但是,您不能合并/推送/拉取任何将被dcommit回SVN的分支:您需要注意 git-svn的CAVEATS部分
为了简化操作并实现与Subversion的互操作性,建议所有的git svn用户直接从SVN服务器clonefetchdcommit,避免在git仓库和分支之间进行任何clone/pull/merge/push操作。推荐使用git format-patch和git am来交换代码,或者直接在SVN代码库中进行'dcommit'操作来在git分支和用户之间交换代码。
不建议在准备从中进行dcommit的分支上运行git mergegit pull,因为Subversion用户无法看到您所做的任何合并操作。此外,如果您从一个镜像了SVN分支的git分支进行合并或拉取,dcommit可能会提交到错误的分支。

所以它说我只应该通过svn仓库在git-svn仓库之间交换代码? - John Smith
嗯,另一种方法是只有一个git-svn仓库,至少有一个非svn分支可以从其他机器推送/拉取。但是这样我只能从一个git-svn进行dcommit,对吧? - John Smith
@John:只要你仔细地先更新相应的分支,你仍然可以从git svn的两个分支中进行dcommit - VonC
我需要先执行 git-svn rebase 吗? - John Smith
1
@John:没错(这让我想起了https://dev59.com/pHA85IYBdhLWcg3wD_O8#2960751)。 - VonC

2
我建议使用rsync将两个存储库传输到两台机器上,这样你就会得到相同的存储库。

所以基本上我会有一个仓库,在机器之间进行同步,对吧?两个不同的操作系统会有问题吗?(XP <--> Linux) - John Smith
@John Smith - 不,那不应该是问题,只要确保CRLF设置正确即可。 - manojlds

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接