X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=debian%2FREADME.source;h=56556aad3ba97593f4af072d634497204d021aca;hb=5f4b1948420011b74d8b8d9c96c63d0b04f242cd;hp=7c5104bc1cbe8ad5a3931557280e261983d59295;hpb=248720d6e87fd8730bf72683cac3436630af4deb;p=topgit.git diff --git a/debian/README.source b/debian/README.source index 7c5104b..56556aa 100644 --- a/debian/README.source +++ b/debian/README.source @@ -6,10 +6,20 @@ 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: +itself. While subject to change, this currently happens as follows. Please +make sure to have the latest version of TopGit (>= 0.3) installed before +trying this: -1. Branches in use -~~~~~~~~~~~~~~~~~~ +1. Cloning the repository +~~~~~~~~~~~~~~~~~~~~~~~~~ +Cloning a TopGit repository requires an additional step to normal Git cloning: + +1. git clone ssh://git.debian.org/git/collab-maint/topgit.git +2. cd topgit +3. tg remote --populate origin + +Branches in use +''''''''''''''' The following branches are in use in the package: - upstream: tracks the upstream Git repository @@ -53,43 +63,53 @@ The upstream tarball for $VERSION can be obtained using pristine-tar: To build the package, you check out the build branch, recreate debian/patches, commit, build, test, upload, tag: - 1. git checkout build && git rm -r debian/patches - 2. tg create stage-0.2-1 fixes/destdir debian/locations ... - 3. git commit -m'staging 0.2-1' - 4. tg export --quilt debian/patches - 5. rm debian/patches/stage-* - 6. sed -i '/^stage-/d' debian/patches/series - 7. git checkout -f build && git add debian/patches - 8. git commit -m'preparing 0.2-1' - 9. build, test, upload, tag ('debian/topgit-0.2-1') -10. tg delete stage-0.2-1 + 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. 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 -5. tg summary -6. for every branch that is prefixed with 'D' in the output: +1. git remote update +2. git checkout master +3. git merge topgit-0.4 + +Now proceed as in the next step. + +6. Making changes to the master branch +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you make changes to the master branch (the "debianisation" branch), follow +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 -6. Building an upstream tarball +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.4 +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.