chiark / gitweb /
update workflow to use tg-export debian/rules target
[topgit.git] / debian / README.source
index 732e5d4da1db2f7b804d8af6433cf1b45af5d374..6717ff469582ae3afd5ff088f32fef1d6542c8bd 100644 (file)
@@ -1,13 +1,13 @@
 Building topgit for Debian
 --------------------------
 
-The topgit source package  uses quilt to apply and remove its patches. Please
+The topgit source package uses quilt to apply and remove its patches. Please
 refer to /usr/share/doc/quilt/README.source for information about how to use
 quilt for source packages.
 
 The quilt series is, however, generated from the Git repository, using TopGit
 itself. While subject to change, this currently happens as follows. Please
-make sure to have the latest version of TopGit (>= 0.3) installed before
+make sure to have the latest version of TopGit (>= 0.5) installed before
 trying this:
 
 1. Cloning the repository
@@ -18,6 +18,8 @@ Cloning a TopGit repository requires an additional step to normal Git cloning:
 2. cd topgit
 3. tg remote --populate origin
 
+TODO: debcheckout support
+
 Branches in use
 '''''''''''''''
 The following branches are in use in the package:
@@ -60,33 +62,41 @@ The upstream tarball for $VERSION can be obtained using pristine-tar:
 
 4. Building the package
 ~~~~~~~~~~~~~~~~~~~~~~~
-To build the package, you check out the build branch, recreate debian/patches,
-commit, build, test, upload, tag:
-
- 1. tg create stage-0.3-1 debian/locations
- 2. git commit -m'staging 0.3-1'
- 3. tg export --quilt debian/patches.new
- 4. rm debian/patches.new/stage-*
- 5. sed -i '/^stage-/d' debian/patches.new/series
- 6. git checkout build && git rm -r debian/patches
- 7. mv debian/patches.new debian/patches && git add debian/patches
- 8. git commit -m'preparing 0.3-1'
- 9. build, test, upload, tag ('debian/topgit-0.3-1')
-10. tg delete stage-0.3-1
-
-This process is still very cumbersome and needs to be improved, ideally within
-TopGit.
+To build the package, you are encouraged to include the TopGit make snippet at
+the top of debian/rules:
+
+  -include /usr/share/topgit/topgit.mk
+
+This will provide the tg-export target, which will create a quilt series of
+all TopGit branches in the current repository.
+
+You can also set the variable TG_BRANCHES to a space- or comma-separated list
+(but not comma and space) of feature branches to export, e.g.:
+
+  TG_BRANCH := branch1,branch2
+  TG_BRANCH := 'branch3 branch4 branch 5'
+
+(The TopGit package actually uses the local version of the file)
+
+When you are ready to build, you check out the build branch, recreate
+debian/patches, commit, build, test, upload, tag:
+
+1. git checkout build
+2. git merge master
+3. ./debian/rules tg-export
+4. git add debian/patches
+5. git commit -m'preparing 0.5-1'
+6. build, test, upload, tag ('debian/topgit-0.5-1')
 
 5. Importing a new upstream version
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-To import a new upstream, pull it into the upstream branch, merge upstream
+To import a new upstream, update the remote, merge the tag you want to merge
 into the master branch, ideally together with an update to debian/changelog,
 then update all TopGit branches:
 
-1. git checkout upstream
-2. git pull
-3. git checkout master
-4. git merge upstream
+1. git remote update
+2. git checkout master
+3. git merge topgit-0.5
 
 Now proceed as in the next step.
 
@@ -98,17 +108,18 @@ this procedure:
 1. tg summary
 2. for every branch that is prefixed with 'D' in the output:
      git checkout $BRANCH && tg update
-3. git checkout build && git merge master
 
 7. Building an upstream tarball
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Until upstream provides official tarballs, the following can be used to create
 them for Debian:
 
-1. git archive --prefix=$(git describe upstream)/ --verbose upstream \
-    | gzip -9 > ../$(git describe upstream | sed s,-,_,).orig.tar.gz
-2. pristine-tar commit ../$(git describe upstream | sed s,-,_,).orig.tar.gz \
-    upstream
+1. git checkout topgit-0.5
+2. git archive --prefix=$(git describe HEAD)/ --verbose HEAD \
+    | gzip -9 > ../$(git describe HEAD | sed s,-,_,).orig.tar.gz
+3. pristine-tar commit ../$(git describe HEAD | sed s,-,_,).orig.tar.gz \
+    HEAD
+4. git checkout master
 
 All comments and suggestions are welcome, especially those pertaining to
 auto-generating debian/changelog from commit logs.