Subject: Re: Integration-Manager Workflow

From: Michael Poole <[email-masked]>
Date: Sat, 16 Jan 2010 14:06:16 -0500

Adrián Ribao Martínez writes:

> What happens if they accidentally work in the develop branch instead of creating a new one? What should we do?
> I think I should never fetch from teamx.myserver.net to avoid this problem and instead track the branch like in step 2. Is this correct?

It is simpler than that.

If you just use "git remote add teamx teamx.myserver.net:/...." (rather
than cloning your integration repository from one of those
repositories), it will leave all your local branches alone -- any
changes to teamx.myserver.net's "develop" branch will only show up in
the teamx/develop tracking branch.

The reason is that a fetch or pull only merges into your develop branch
if your branch.develop.merge git-config entry specifies an upstream
branch -- more detail can be found in the git-config man page under
branch.<name>.remote and branch.<name>.merge.

Those entries are set up when you clone from a repository, and through
some other commands, but if teamx clones from the integration server,
they can only mess up their own develop branch.  If/when you push into
teamx's repository from yours, you can forcibly overwrite any of those
accidental changes.  (Normally, though, the push would only do a
fast-forward merge -- so if teamx made such a mistake, the merge will
fail until you address the mismatch.)

Michael Poole