Re: Git: How to keep multiple bare repos in sync?

2015-06-02 Thread David Lang

On Wed, 3 Jun 2015, chenxitwo wrote:


Hi Konrad Scherer,
Thanks for your reply.

But git mirror is helpless for me.
I have an idea about two repos' sync. However there is a problem with 
this is how to prevent other usrs' push operation.

Details as follows:
Team A, B have their own git server repos, respectively repos_A, 
repos_B.
step1: The repos_A locking repos_B When repos_A received Team_A 
requests to push, and repos_B can't accept other users' push request. (use 
pre-receive hook)
step2: After the repos_A is updated, the repos_A will send push request 
to the repos_B.
step3: After the repos_B is updated, the repos_A will unlock the 
repos_B.

Problem: How to lock git remote repos to prevent other usrs' push 
operation.


you can't lock the remote repos to prevent pushes to them.

This is the problem that Junio was referring to when he said that if people are 
pushing to all repos there is no general solution.


What you will need to do is to have someone reconcile the differences between 
the different repos periodically.


However, stepping back a bit. Why is it that you say that you don't have enough 
bandwidth between the sites? If you have the developers working with a local 
clone on their workstation, the bandwidth needed after the initial clone should 
be pretty low.


In any case, the issue is how much the work of the different developers overlap 
with each other. If they are all changing the same part of the code, you will 
have a problem. But if they are working on different areas, then you can use the 
branch and pull model where the developers do their development locally and then 
push what they have ready to integrate into a local (at least same building) 
repo and send a pull request to whoever is coordinating the changes, and they 
then pull all the different changes and deal with reconciling conflicts between 
them.


David Lang




--
chenxitwo

not remote sync.

We have three teams to participate in the same project, and is located in 
different places. Bandwidth that between the two of our teams is not enough. 
Three teams have their own git server. Like this kind of situation, how should 
handle?



chenxitwo

From: Junio C Hamano
Date: 2015-05-13 12:37
To: chenxitwo
CC: git
Subject: Re: Git: How to keep multiple bare repos in sync?
chenxitwo chenxi...@126.com writes:


There are three git server(bare repos), but i don't know to solve the
problem that how to keep these git servers in sync.


rsync?

The problem is under-specified.  Is there one of them that is
authoritative and that the other ones should match its progress?
If so, perhaps push from the authoritative one to the other two
with push --mirror (or have the other ones fetch --mirror)?

If you are allowing people to push into any of them randomly,
then there is no general solution.  If I push an update to 'master'
of instance A while you update the same 'master' branch of instance
B, somebody has to reconcile the divergence between the two by
creating a merge, and that can possibly conflict, needing human
intervention to 
resolve.N嫥叉靣笡y???氊b瞂???千v豝???藓{.n???壏爦丕???洝塄}???财爖???j:+v墾???珣赙zZ+€???zf"穐殘???啳嗃i???鄗???畐ア???櫒璀??撷f

Re: Git: How to keep multiple bare repos in sync?

2015-06-02 Thread chenxitwo
Hi Konrad Scherer,
Thanks for your reply.
 
But git mirror is helpless for me.
I have an idea about two repos' sync. However there is a problem with 
this is how to prevent other usrs' push operation.
 
Details as follows:
Team A, B have their own git server repos, respectively repos_A, 
repos_B.
step1: The repos_A locking repos_B When repos_A received Team_A 
requests to push, and repos_B can't accept other users' push request. (use 
pre-receive hook)
step2: After the repos_A is updated, the repos_A will send push request 
to the repos_B.
step3: After the repos_B is updated, the repos_A will unlock the 
repos_B.
 
Problem: How to lock git remote repos to prevent other usrs' push 
operation.
 


--
chenxitwo
not remote sync.  

We have three teams to participate in the same project, and is located in 
different places. Bandwidth that between the two of our teams is not enough. 
Three teams have their own git server. Like this kind of situation, how should 
handle?



chenxitwo

From: Junio C Hamano
Date: 2015-05-13 12:37
To: chenxitwo
CC: git
Subject: Re: Git: How to keep multiple bare repos in sync?
chenxitwo chenxi...@126.com writes:

 There are three git server(bare repos), but i don't know to solve the
 problem that how to keep these git servers in sync.

rsync?

The problem is under-specified.  Is there one of them that is
authoritative and that the other ones should match its progress?
If so, perhaps push from the authoritative one to the other two
with push --mirror (or have the other ones fetch --mirror)?

If you are allowing people to push into any of them randomly,
then there is no general solution.  If I push an update to 'master'
of instance A while you update the same 'master' branch of instance
B, somebody has to reconcile the divergence between the two by
creating a merge, and that can possibly conflict, needing human
intervention to resolve.

Re: Git: How to keep multiple bare repos in sync?

2015-05-13 Thread chenxitwo
not remote sync.  

We have three teams to participate in the same project, and is located in 
different places. Bandwidth that between the two of our teams is not enough. 
Three teams have their own git server. Like this kind of situation, how should 
handle?



chenxitwo

From: Junio C Hamano
Date: 2015-05-13 12:37
To: chenxitwo
CC: git
Subject: Re: Git: How to keep multiple bare repos in sync?
chenxitwo chenxi...@126.com writes:

 There are three git server(bare repos), but i don't know to solve the
 problem that how to keep these git servers in sync.

rsync?

The problem is under-specified.  Is there one of them that is
authoritative and that the other ones should match its progress?
If so, perhaps push from the authoritative one to the other two
with push --mirror (or have the other ones fetch --mirror)?

If you are allowing people to push into any of them randomly,
then there is no general solution.  If I push an update to 'master'
of instance A while you update the same 'master' branch of instance
B, somebody has to reconcile the divergence between the two by
creating a merge, and that can possibly conflict, needing human
intervention to 
resolve.N�Р骒r��yb�X�肚�v�^�)藓{.n�+丕��≤�}��财�z�j:+v�����赙zZ+��+zf"�h���~i���z��wア�?�ㄨ���)撷f