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

Re: Call for teams interested in collaborating on a 'standard' Git workflow



Hi there,

On Thu, Jul 28, 2011 at 03:36:07PM +0200, Lucas Nussbaum wrote:
> Hi,
> 
> It seems that many different teams have recently switched to Git, or are
> considering switching. But each of them seems to re-implement the wheel
> by designing their own Git workflow.

None of us is at Debconf unfortunately, but the Mono/CLI teams are
interested in this. For all of our packages we use git-buildpackage and
the majority just use plain quilt (or maybe if we're feeling exotic with
gbp-pq) for patches. 

I think patches are the most interesting area to focus on, as they are
where we can get a lot of the benefit of git. What you want:

  1. Ability to cherry-pick from upstream
  2. Proper history of patches
  3. git-blame to work
  4. Ability to drop patches merged upstream, etc
  5. Use just the commands provided by git as far as possible (scripts
     OK as long as they just automate git commands)

2 & 4 seem to me to basically mean that you want the patches /applied/
in your git tree. But it's also pretty nasty to version .pc (c.f.
#572204), so you probably want to use no patchsys or single-debian-patch
to avoid the pain at the expense of having a slightly less useful source
package.

Mirco 'meebey' Bauer came up with a pure git workflow for managing
patches for the mono source package, in which we cherry-pick a lot of
patches from upstream. Basically each patch is a branch of upstream,
which is itself a gbp branch. These are then merged in turn into master,
resolving all conflicts at this time. We can handle merging with new
upstream versions and dropping applied patches. Here's some command
sequences that might give you an idea of how this works

  http://wiki.debian.org/Teams/DebianMonoGroup/Git

and a script also written by Mirco to test whether branches are already
merged in a new upstream version or if they need updating

  http://anonscm.debian.org/gitweb/?p=pkg-mono/packages/mono.git;a=blob;f=debian/git-test-debian-patches;h=76f31265d026eb6c97448749c864aba39630f11e;hb=refs/heads/master-experimental

It's clearly not perfect, but I think something like this is a good
start.

HTH,

-- 
Iain Lane                                  [ iain@orangesquash.org.uk ]
Debian Developer                                   [ laney@debian.org ]
Ubuntu Developer                                   [ laney@ubuntu.com ]
PhD student                                       [ ial@cs.nott.ac.uk ]

Attachment: signature.asc
Description: Digital signature


Reply to: