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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <chenxitwo@xxxxxxx> 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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]