X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit-maint-merge.7.pod;h=3da1b78538cd5eba22e805e033d98cde4ce47926;hp=cb147b0a591b0e66a1563c1535328254b30bf363;hb=865ccbc447b33ac2f2d66af0147463c2709a4339;hpb=91e7b53b3c66102c4bc06bec5cd7db13a35dc63a diff --git a/dgit-maint-merge.7.pod b/dgit-maint-merge.7.pod index cb147b0a..3da1b785 100644 --- a/dgit-maint-merge.7.pod +++ b/dgit-maint-merge.7.pod @@ -23,7 +23,9 @@ the usefulness of the raw Debian source package. The Debian archive is thought of as an output format. For example, we don't spend time curating a series of quilt patches. -However, the information such a series would contain is readily +However, +in straightforward cases, +the information such a series would contain is readily available from B. =item @@ -34,19 +36,13 @@ that upstream makes available for download. =back -=head1 GIT CONFIGURATION - -Add the following to your ~/.gitconfig to teach git-archive(1) how to -compress orig tarballs: - -=over 4 - - [tar "tar.xz"] - command = xz -c - [tar "tar.gz"] - command = gzip -c - -=back +This workflow is less suitable for some packages. +When the Debian delta contains multiple pieces which interact, +or which you aren't going to be able to upstream soon, +it might be preferable to +maintain the delta as a rebasing patch series. +For such a workflow see for example +dgit-maint-gbp(7). =head1 INITIAL DEBIANISATION @@ -69,7 +65,7 @@ been tagged '1.2.2' by upstream. =back -The final command detachs your master branch from the upstream remote, +The final command detaches your master branch from the upstream remote, so that git doesn't try to push anything there, or merge unreleased upstream commits. If you want to maintain a copy of your packaging branch on B in addition to B, you can @@ -94,16 +90,15 @@ unless you also happen to be involved in upstream development. We work with upstream tags rather than any branches, except when forwarding patches (see FORWARDING PATCHES UPSTREAM, below). -Finally, you need an orig tarball. Generate one with git-archive(1): +Finally, you need an orig tarball: =over 4 - % git archive -o ../foo_1.2.2.orig.tar.xz 1.2.2 + % git deborig =back -If you are using the version 1.0 source package format, replace 'xz' -with 'gz'. +See git-deborig(1) if this fails. This tarball is ephemeral and easily regenerated, so we don't commit it anywhere (e.g. with tools like pristine-tar(1)). @@ -121,7 +116,7 @@ A convenient way to perform this check is to import the tarball as described in the following section, using a different value for 'upstream-tag', and then use git-diff(1) to compare the imported tarball to the release tag. If they are the same, you can use -upstream's tarball instead of running git-archive(1). +upstream's tarball instead of running git-deborig(1). =back @@ -187,6 +182,7 @@ this workflow. It should be skipped when debianising a new package. % dgit clone foo % cd foo + % git remote add -f upstream https://some.upstream/foo.git =back @@ -217,7 +213,7 @@ To achieve this, you might need to delete I. One way to have dgit check your progress is to run B. -The dgit push will require I<--overwrite>. +The first dgit push will require I<--overwrite>. =head1 SOURCE PACKAGE CONFIGURATION @@ -237,31 +233,42 @@ source: You don't need to create this file if you are using the version 1.0 source package format. -=head2 Sample text for README.source +=head2 Sample text for debian/source/patch-header -It is a good idea to explain how a user can obtain a break down of the +It is a good idea to explain how a user can obtain a breakdown of the changes to the upstream source: =over 4 -The Debian packaging of foo is maintained using dgit. For the sake of -an efficient workflow, Debian modifications to the upstream source are -squashed into a single diff, rather than a series of quilt patches. -To obtain a patch queue for package version 1.2.3-1: +The Debian packaging of foo is maintained in git, +using the merging workflow described in dgit-maint-merge(7). +There isn't a patch queue that can be represented as a quilt series. + +A detailed breakdown of the changes is available from their +canonical representation - +git commits in the packaging repository. +For example, to see the changes made by the Debian maintainer in the +first upload of upstream version 1.2.3, you could use: =over 4 - # apt-get install dgit - % dgit clone foo + % git clone https://git.dgit.debian.org/foo % cd foo % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' =back -See dgit(1), dgit(7) and dgit-maint-merge(7) for more information. +(If you have dgit, use `dgit clone foo`, +rather than plain `git clone`.) + +A single combined diff, containing all the changes, follows. =back +Alternatively, this text could be added to README.source. However, +this might distract from more important information present in the +latter file. + =head1 BUILDING AND UPLOADING Use B, B, B, and B from "When upstream releases only