git/list[1] front-page[2] threads[3] people[4] search[5] about
 

elegant(?) debian topgit workflow?

From
TKThomas Koch <thomas@koch.ro>
Date
Dec 16, 2009, 10:13 UTC
Message-ID
<200912161113.38396.thomas@koch.ro>
CC (FYI) to git and debian-devel. see http://vcs-pkg.org
Hi,
would you be so kind to review my workflow proposal?

branches --------

upstream debian/*, fixes/*, features/* - topgit branches based on upstream patches - the hero master - contains the debian/ dir and is the branch we build from

All topgit branches are integrated in the patches branch, which is afterwards merged into master. The magic is, that the integration is not a regular merge, but a handcrafted merge and commit with quilt and git plumbing.

workflow --------

Every merge starts with reseting "patches" to the state of upstream:

#> git checkout upstream (for the first time: git checkout -b patches, otherwise:) #> git symbolic-ref HEAD refs/heads/patches

Now we're on branch patches with the working tree and index in the pristine state of upstream. We can now integrate the topgit branches:

#> tg export --quilt debian/patches \
 -b debian/use-debian-java-libraries,debian/disable-tests-that-break-on-buildd

#> quilt push -a #> git add debian/ #> rm -rf .pc #> git add -u

Now let's create the commit and specify, which topgit branches were manually merged:

#> TREE=$(git write-tree)
#> COMMIT=$(git commit-tree $TREE \
     -p debian/use-debian-java-libraries \
     -p debian/disable-tests-that-break-on-buildd)
#> git update-ref refs/heads/patches $COMMIT
Now I can happily merge patches into master.

advantages ----------

- The commits of all ever merged topgit branches are preserved, even after tg 
delete
- easy to understand, non cluttered history
- Easy to retire topgit branches
- Easy to work on old package versions(?): just make a branch from master at 
desired version, eventually also branch patches branch to work on old patches
- The quilt patches are used and therefore tested in the same way, as dpkg-
source uses them in version 3
- Integrates with git-buildpackage
- Doesn't need anything, that topgit hasn't ATM

Todo ----

discuss, test, script
Best regards,
Thomas Koch, http://www.koch.ro
Next: Felipe Contreras
Message 1 of 3 in “elegant(?) debian topgit workflow?”
  1. Thomas KochDec 16, 2009
  2. Felipe ContrerasDec 24, 2009
  3. David GreavesDec 24, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.