如何解决git serve 同步冲突?

内核编译和嵌入式产品的设计与开发
回复
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

如何解决git serve 同步冲突?

#1

帖子 chenxitwo » 2015-05-07 18:28

现在遇到这样的一个问题,应用场景如下:
有两个团队,一个是在中国,一个在欧洲,使用git作为source code的版本控制。由于国内和欧洲之间带宽的不够,两个团队不能使用同一个Git serve, 所以有两个git server。但两个git server之间的同步要借助HK的服务器(从HK到国内和欧洲的带宽可以满足需求),但两个Git serve可能会有冲突,并且两个团队冲突的内容是有交叉的。
例如:
C代表中国git serve,O代表欧洲git serve。
C和O初始的source code是一致的,C和O在更新之后,如何将各自的修改更新到对方的git serve上。
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 如何解决git serve 同步冲突?

#2

帖子 astolia » 2015-05-08 17:11

既然香港能满足带宽需求,就两方都往香港提交呗。干嘛还要各搞一个?
也可以在github、bitbucket之类网站上建个私有仓库啊
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Re: 如何解决git serve 同步冲突?

#3

帖子 chenxitwo » 2015-05-11 10:34

特殊情况要求我们本地必须有git server。
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 如何解决git serve 同步冲突?

#4

帖子 astolia » 2015-05-11 12:01

chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Re: 如何解决git serve 同步冲突?

#5

帖子 chenxitwo » 2015-05-11 17:26

astolia 写了:那你就用hooks呗。 http://git-scm.com/book/en/v2/Customizi ... Side-Hooks
非常感谢您推荐的文章,很有用。
server hooks的作用是当git client在push时能够触发一些action,而关键是server(欧洲和中国)之间的同步策略和冲突的解决策略。
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 如何解决git serve 同步冲突?

#6

帖子 astolia » 2015-05-11 19:26

就利用hooks啊,每次接受push前先与另一个服务器同步,如果有冲突就push不上,让push的人自己解决后再重来一遍
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Re: 如何解决git serve 同步冲突?

#7

帖子 chenxitwo » 2015-05-12 9:39

关键是两个服务器之间如何同步?像下面的情况是否可以。
由于Git server只能接受push, pull请求,而不能对其他server发起push,pull请求,所以两个服务器之间不能直接进行同步,必须借助HK来中转。

所以欧洲和中国都是remote repo,而HK作为local repo。当有remote repo接受到push请求时(由各自团队发起),就发送消息给HK的local repo,让其同步两个服务器。---- ①关键是HK如何来同步两个服务器,特别是当两个服务器有冲突时? ② 还有在HK同步两个服务器时,肯定会给两个服务器发起push请求。服务器应该是能够识别push请求发起方的身份,但至少其中一个服务器的push请求还没有完成,是否会影响HK发起的push请求?

还有这种方案,在每次push前进行同步,是否会影响push的效率?
回复