Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 如何同步SVN和Git存储库?_Eclipse_Git_Svn_Version Control - Fatal编程技术网

Eclipse 如何同步SVN和Git存储库?

Eclipse 如何同步SVN和Git存储库?,eclipse,git,svn,version-control,Eclipse,Git,Svn,Version Control,我的客户使用SVN,我的公司使用Git(中央裸Git回购)。因此,我的任务是同步两台服务器。我不能使用SubGit,因为我不能在任何一台服务器上进行任何修改 我成功地使用git svn将svn下载到我的本地git repo(使用Ortoisegit)。但我不知道如何设置到中央Git存储库的远程上游(在Eclipse中使用Egit) 是否可以设置一个远程分支,这样我就可以将本地Git中的SVN内容签入到中央Git repo中?怎么做 谢谢。如果我理解正确,您无法更新SVN和Git存储库中的挂钩。这

我的客户使用SVN,我的公司使用Git(中央裸Git回购)。因此,我的任务是同步两台服务器。我不能使用SubGit,因为我不能在任何一台服务器上进行任何修改

我成功地使用git svn将svn下载到我的本地git repo(使用Ortoisegit)。但我不知道如何设置到中央Git存储库的远程上游(在Eclipse中使用Egit)

是否可以设置一个远程分支,这样我就可以将本地Git中的SVN内容签入到中央Git repo中?怎么做


谢谢。

如果我理解正确,您无法更新SVN和Git存储库中的挂钩。这会使任务复杂化很多,因为如果有人在同一时刻向SVN提交,您不能拒绝Git,反之亦然

我认为,git svn不是一个解决方案,因为在向svn发送提交(“git svn DCOMIT”)时,它将git commit SHA-1更改为添加
git svn id:
签名。结果,当您将提交C推送到Git存储库时,您将该提交拿到Git svn repsository,运行“Git svn dcommit”,它将其转换为svn,并添加
Git svn id:
signature以提交消息,从而更改提交SHA-1,这样您将在Git svn存储库中获得另一个提交C'。在这之后,C'应该被发送回Git存储库,然后推送C的用户应该下载C'并在其工作副本中用C'替换C'。因此,您将无法轻松、透明地进行同步

使用SubGit,您可以通过创建一个安装了SubGit的“中间”Git存储库,将问题简化为2个Git存储库的同步。同步两个Git存储库是一项更简单的任务(互联网上有很多解决方案),但它仍然不是小菜一碟,因为两个不同的用户可以同时推送到两个存储库中(并且您不能放弃其中一个推送,因为您无法在存储库中创建挂钩)。如果这些更改相互冲突,您只能手动解决,恐怕这是您能做的最好的事情:创建一个带有2个远程的存储库,并使用脚本不断地从其中一个获取更改,然后将更改推送到另一个,反之亦然(并通知管理员,在同时发生冲突的更改时停止同步)

免责声明:我可能有偏见,因为我是SubGit开发人员之一