Hello, I am trying to find a good workflow to maintain a package in git. The package requires several patches to its configure.ac and Makefile.am files, and upstream is generally too overworked to be able to review and integreate patches.
I also want to stick to existing tools like git-import-dsc, git-import-orig, git-buildpackage and pristine-tar as much as possible. My main problem is that after importing upstream's sources, I end up with the various autotools fluff (./configure, Makefile.in and so on) committed in. When I change autotools files in topic branches, and test if it works, then the fluff gets updated as well. If I commit everything, then at the point of merging the various topic branches together, or at the point of importing a new upstream version, I risk ending up with conflicts all over the place. The way I figured so far is this: 1. git-import-dsc --pristine-tar 2. branch off upstream and create a topic branch 3. do my changes and test them 4. commit only the files that I have changed, and not the files that autotools has regenerated. This could be a bit cumbersome, but it can be automated with something like: git checkout aclocal.m4 configure `git ls-files -c |grep .in\$` 5. I do not merge topic branches into the debian branch, but I collect them as quilt patches In this way, I can easily merge a new upstream version into the topic branches, and "git diff upstream tbranch1" will always give me a clean patch. I get to test all topic branches separately, and they can even be merged cleanly into a temporary branch to test if they work together. The point of the topic branches becomes to maintain the patch as upstream is updated. This sounds an awful lot like topgit, but I have not explored it enough to know whether I'm just redoing what it does. I am now tempted to maintain a FIXME.branchname file per branch, where I keep notes of why the patch is there, what's missing for upstream to integrate it, and so on. When packaging, I'm undecided on these two options: 1. Build-depend on automake and let it rebuilt itself at 'make' time 2. git checkout master -b temp quilt push -a autoreconf -if git show > debian/patches/autotools.diff # Ensure that autotools.diff is the last patch in the series git checkout master git branch -D temp Option 2 sounds quite nice, but wow, 1476264 bytes of patch. Ciao, Enrico -- GPG key: 1024D/797EBFAB 2000-12-05 Enrico Zini <enr...@debian.org>
Description: Digital signature
_______________________________________________ vcs-pkg-discuss mailing list email@example.com http://lists.alioth.debian.org/mailman/listinfo/vcs-pkg-discuss