X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=debian%2FREADME.source;h=06bacffcaaa0ca802af7be5f2f2cdb8bcfe51d18;hp=6fafbb44ea23b33f53b9d4c5ee17fbb420408ef6;hb=27b380077d91f2b35456d5a7a9fbb5c3b457ab5e;hpb=cd10b605b0e442f52837bb1d6e0ffbde83ffcab0 diff --git a/debian/README.source b/debian/README.source index 6fafbb4..06bacff 100644 --- a/debian/README.source +++ b/debian/README.source @@ -1,117 +1,14 @@ 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 -trying this: +The quilt series is generated from the Git repository, using TopGit itself. +This process is documented in /usr/share/doc/topgit/HOWTO-tg2quilt.gz . -1. Cloning the repository -~~~~~~~~~~~~~~~~~~~~~~~~~ -Cloning a TopGit repository requires an additional step to normal Git cloning: +The topgit packages uses the branch layout described in the aforementioned +document. -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 -- fixes/*: patches fixing problems with upstream -- features/*: patches providing new features, targetted upstream -- master: the main Debianisation branch -- debian/*: Debian-specific patches - -upstream and master are regular Git branches, while the others are TopGit -branches. The reason why master is not a TopGit branch itself is so that it's -possible to export all TopGit-managed branches into the quilt series, without -having to make an exception for master. - -2. Developing a new feature -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you want to develop a new feature (or bug fix), first consider whether the -patch is intended to go upstream or is a Debian-specific change. Choose the -namespace accordingly and base it off upstream or master respectively. If the -patch depends on another patch, obviously base it off the respective TopGit -branch. - -The following are the steps required to add a feature branch/patch: - -1. tg create features/new-feature upstream - - or - - tg create debian/new-debian-stuff master - -2. edit .topmsg and make the subject line be a short description, optionally - add a longer description to the body - -3. git add .topmsg && git commit -m'create branch features/new-feature' - -3. Obtaining the upstream tarball -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The upstream tarball for $VERSION can be obtained using pristine-tar: - - pristine-tar checkout ../topgit_$VERSION.orig.tar.gz - -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.4-1 debian/locations - 2. git commit -m'staging 0.4-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.4-1' - 9. build, test, upload, tag ('debian/topgit-0.4-1') -10. tg delete stage-0.4-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, 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 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 - -7. Building an upstream tarball -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Until upstream provides official tarballs, the following can be used to create -them for Debian: - -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. - - -- martin f. krafft Mon, 11 Aug 2008 17:32:48 -0300 + -- martin f. krafft Wed, 19 Nov 2008 15:17:09 +0100