Subject: keeping remote branches in sync

From: Kevin Green <[email-masked]>
Date: Thu, 9 Oct 2008 10:14:18 -0400

Hi,

We've been using git for our development for a few months now.  We've got two
developers and each push up to a shared bare repository.  Our workflow is pretty
simple and goes something like this:

We do development in local topic branches.  Occasionally, when we want the
other to take a look we might push them up to our shared repo.

Once we're happy with local testing and code review, we rename the topic
branch to prefix it with "$user/for_next/".  This lets us know that the developer
feels the code is ready for more further integration testing.  We use a branch
called 'next' which merges all the for_next branches together.  One of us
merges all the for_next branches locally and pushes it up to the shared repo.
We then have some jobs that release that branch as an alpha nightly build for
further testing by more users.

After topic branches are merged to master, we do some cleanup by deleting them
from the shared repo.

One of the issues we have is that _my_ local repos remote branches aren't kept
in sync with the shared repo.  So, if the other developer deletes all his
topic branches and I do a git-pull, the topic branches still show as remotes
in my branch and vice versa for him.  This is exactly what we expect, but it's
not desirable for us.

I'd like some comment on whether our workflow could use some improvement.
Specifically, if there's a straightforward way to handle the issue above, that
would be great.  I've been looking through the manual on git-fetch and
git-pull and not seeing any options to do this. 

I was thinking of writing a little utility that does a 'git-cherry master $topic'
and doing a 'git-branch -d -r $topic' on any topic branch that is already in master, 
but I'd rather use something already there, if possible.

What are others doing to handle this situation?

Thanks!

--Kevin