On Wed, 28 Aug 2013 08:46:25 -0700 (PDT)
Anders Sveen <anders.r.sv...@gmail.com> wrote:

> We have an set up with two network zones. One is the secure zone (no 
> internet access) and the other is the dev zone. Strangely development
> will happen in both zones, not just the dev zone. :) I use Gitolite
> to manage rights.
> Between the zones I have one opening: Ssh from one machine in the
> secure zone to one machine in the dev zone. So I want to establish
> both these machines as Git repo's that clients in each zone pulls and
> pushes from. And I was hoping changes would flow seamlessly between
> the two hosts in seaprate zons. How can I sync between them? 
> I have looked into the "clone --mirror" option, but from what I can
> gather a "remote update" will actually overwrite changes done to that
> repo, so it would not work two way.
> I have managed to get a setup where I pull from both via a clone with
> added remotes, but this seems cumbersome and doesn't include all
> branches by default.

I'm afraid the setup you intend to create cannot really be implemented
in an automated fashion simply becase you're facing a case of
multi-master replication with no way to automatically sort out arising
conflicts.  I mean, if someone updates a branch named "master" on the
dev machine and someone else updates the same-named branch on the
secured machine, you're facing a fork, and since branches in Git are
light-weight (have only the single head and are in fact fully defined
by it solely) you can't just have this fork maintained at a central
"rendez-vouz" repo, and hence you ought to have a human (an integrator)
to deal with it.

So my proposition is to have "double mirroring": each of the boundary
machines should have full sets of bare repos -- one set of R/W repos is
for its own network and another set of R/O repos are mirrors of the
repos from the secured network; on the other box, the sets are reversed.
Then provide no-brainer synchronization (either through gitolite's
built-in mirroring support or via cron tasks etc) between matching sets
of repos (say, each R/O repo mirror-fetches from its respective R/W
repo).  This way, each network would see an R/O view of another network.
Each developer could fetch from the other network's repos but would
only ever push to its own network's R/W repos.

On the other hand, I fail to see what a setup that compilcated is called
for.  Is it possible to make a single machine available via SSH from
both networks and hence have a single set of centralized repos?

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to