X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=dgit-maint-debrebase.7.pod;h=4996e6ad0da8afeb618778e269a4c16f6a76de24;hb=a73c60edeaaf776cee0b9065b25ce312baccc49b;hp=b4330f9d8a6804088ae7a45659bc4b26580bb7a0;hpb=72ce6d23ca6a10fcab21410d202ec8ad5fc2aeb9;p=dgit.git diff --git a/dgit-maint-debrebase.7.pod b/dgit-maint-debrebase.7.pod index b4330f9d..4996e6ad 100644 --- a/dgit-maint-debrebase.7.pod +++ b/dgit-maint-debrebase.7.pod @@ -269,6 +269,11 @@ patches applied. Use =back +If you were not previously using dgit to upload your package (i.e. you +were not using the workflow described in dgit-maint-gbp(7)), and you +happen to have run B in this clone of the repository, +you will need to pass I<--fdiverged> to this command. + =item (C) There is a delta queue, and patches are applied. Use @@ -442,6 +447,12 @@ cowbuilder>. Upload with B or B. Remember to pass I<--new> if the package is new in the target suite. +In some cases where you used B since +the last upload, it is not possible for dgit to make your history +fast-forwarding from the history on B. In such cases you +will have to pass I<--overwrite> to dgit. git-debrebase will normally +tell you if this is will be needed. + Right before uploading, if you did not just already do so, you might want to have git-debrebase(1) shuffle your branch such that the Debian delta queue appears right at the tip of the branch you will push: @@ -458,53 +469,6 @@ Note that this will introduce a new pseudomerge. After dgit pushing, be sure to git push to B, if you're using that. -=head1 INSPECTING THE HISTORY - -The git history made by git-debrebase can seem complicated. -Here are some suggestions for helpful invocations of gitk and git. -They can be adapted for other tools like tig, git log, etc. - -=over - -=item History of package in Debian (disregarding history from upstream): - - % gitk --first-parent - -In a laundered branch, the delta queue is at the top. - -=item History of the packaging (excluding the delta queue) - - % gitk :/debian :!/debian/patches - -=item Just the delta queue (ie, Debian's changes to upstream): - - % gitk --first-parent -- :/ :!/debian - -=item Full history including old versions of the delta queue: - - % gitk --date-order - -The "Declare fast forward" commits you see have an older history -(usually, an older delta queue) as one parent, -and a newer history as the other. ---date-order makes gitk show the delta queues in the right order. - -=item Show complete diff since the last upload: - - % git diff dgit/dgit/sid..HEAD -- :/ :!/debian/patches -(Includes changes to upstream files.) - -=item Interdiff of delta queue since last upload, if you really want that: - - % git debrebase make-patches - % git diff dgit/dgit/sid..HEAD -- debian/patches - -=back - -Also of course there is - - % git debrebase status - =head1 HANDLING DFSG-NON-FREE MATERIAL =head2 Illegal material @@ -523,7 +487,9 @@ email your archive administrators. For Debian that is Our approach is to maintain a DFSG-clean upstream branch, and create tags on this branch for each release that we want to import. We then -import those tags per "Importing the release", above. +import those tags per "Importing the release", above. In the case of +a new package, we base our initial Debianisation on our first +DFSG-clean tag. For the first upstream release that requires DFSG filtering: @@ -534,11 +500,23 @@ For the first upstream release that requires DFSG filtering: % git commit -m "upstream version 1.2.3 DFSG-cleaned" % git tag -s 1.2.3+dfsg % git checkout master - % # proceed with "Importing the release" on 1.2.3+dfsg tag =back -And for subsequent releases (whether or not they require filtering): +Now either proceed with "Importing the release" on the 1.2.3+dfsg tag, +or in the case of a new package, + +=over 4 + + % git branch --unset-upstream + % git reset --hard 1.2.3+dfsg + +=back + +and proceed with "INITIAL DEBIANISATION". + +For subsequent releases (whether or not they require additional +filtering): =over 4 @@ -670,6 +648,62 @@ avoids introducing a new origin commit into your git history. (This origin commit would represent the most recent non-dgit upload of the package, but this should already be represented in your git history.) +=head2 Inspecting the history + +The git history made by git-debrebase can seem complicated. +Here are some suggestions for helpful invocations of gitk and git. +They can be adapted for other tools like tig(1), git-log(1), magit, etc. + +History of package in Debian, disregarding history from upstream: + +=over + + % gitk --first-parent + +In a laundered branch, the delta queue is at the top. + +=back + +History of the packaging, excluding the delta queue: + + % gitk :/debian :!/debian/patches + +Just the delta queue (i.e. Debian's changes to upstream): + + % gitk --first-parent -- :/ :!/debian + +Full history including old versions of the delta queue: + +=over + + % gitk --date-order + +The "Declare fast forward" commits you see have an older history +(usually, an older delta queue) as one parent, +and a newer history as the other. +--date-order makes gitk show the delta queues in the right order. + +=back + +Complete diff since the last upload: + +=over + + % git diff dgit/dgit/sid..HEAD -- :/ :!/debian/patches + +This includes changes to upstream files. + +=back + +Interdiff of delta queue since last upload, if you really want it: + + % git debrebase make-patches + % git diff dgit/dgit/sid..HEAD -- debian/patches + +And of course there is: + + % git debrebase status + =head2 Alternative ways to start a debrebase Above we started an interactive debrebase by invoking git-debrebase(1)