A (git) workflow for Debian packaging

martin f krafft madduck at debian.org
Wed Oct 10 01:58:01 UTC 2007

also sprach martin f krafft <madduck at debian.org> [2007.10.09.1057 +0100]:
> This doesn't work, since octopus merging (which is what
> poor-mans-gitbuild does: git-merge with multiple branches as
> arguments) isn't as smart as I thought:
>   http://marc.info/?l=git&m=119188993817723&w=2

I fixed it buy making the build script merge branches one after the

  set -eu
  git checkout master
  debver=$(dpkg-parsechangelog | sed -ne 's,Version: ,,p')
  git checkout build
  git merge ${1:-upstream}
  git merge upstream-patches
  git merge master
  for b in $(git for-each-ref --format='%(refname)' refs/heads/deb/*); do
    git merge $b
  git tag -s debian/$debver
  debuild   # will ignore .git automatically
  git checkout master

I also added this paragraph:

  Note how we are merging each branch in turn, instead of using the
  octopus merge strategy (which would create a commit with more than
  two parents) for reasons outlined `in this post
  An octopus-merge *would actually* work in our situation, but it
  will not always work, so better safe than sorry (although you
  *could* still `achieve the same result

Obviously, the build script is shite; if a merge fails, the person
is left somewhere weird. It helps that I show how to reset build
(git checkout build; git reset --hard upstream) to be able to retry,
but it's not perfect. But this is *poor-mans*-gitbuild. There has to
be room for improvement. :)

 .''`.   martin f. krafft <madduck at debian.org>
: :'  :  proud Debian developer, author, administrator, and user
`. `'`   http://people.debian.org/~madduck - http://debiansystem.info
  `-  Debian - when you have better things to do than fixing systems
it has been said that there are only two businesses
that refer to customers as users:
illegal drug trade and the computer industry.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature (see http://martin-krafft.net/gpg/)
Url : http://lists.alioth.debian.org/pipermail/vcs-pkg-discuss/attachments/20071010/c595c1a5/attachment.pgp 

More information about the vcs-pkg-discuss mailing list