X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase.1.pod;h=639b07d2e6af4feb4b17a0b9720d6e08a222a774;hp=28f3084816064107440ab23f938091d4079269c1;hb=HEAD;hpb=b58f7c61452fc5b8b7d70f735283ecdc1b5e8ac3 diff --git a/git-debrebase.1.pod b/git-debrebase.1.pod index 28f30848..639b07d2 100644 --- a/git-debrebase.1.pod +++ b/git-debrebase.1.pod @@ -1,25 +1,39 @@ =head1 NAME -git-debrebase - delta queue rebase tool for Debian packaging +git-debrebase - tool to maintain series of Debian changes to upstream source =head1 SYNOPSYS git-debrebase [] [-- ] git-debrebase [] [ -=head1 INTRODUCTION +=head1 QUICK REFERENCE -git-debrebase is a tool for representing in git, -and manpulating, -Debian packages based on upstream source code. +These are most of the commands you will regularly need: + + git debrebase -i # edit the patch queue + git debrebase conclude && git push # push to eg salsa + git debrebase conclude && dgit push-source # source-only upload + git debrebase new-upstream 1.2.3-1 [-i] # uses tag, eg "v1.2.3" + dpkg-buildpackage -uc -b # get test debs, at any time + +To add patches, or edit the packaging, just make git commits. +Ignore anything that may appear in debian/patches. +Avoid using "git pull" and "git merge" without "--ff-only". + +git-debrebase has a special branch format, so see +"CONVERTING AN EXISTING PACKAGE" in L. + +=head1 GUIDE TO DOCUMENTATION This is the command line reference. -Please read the tutorial -L. +There is also a detailed workflow tutorial at +L +(on which the above "QUICK REFERENCE" is based). For background, theory of operation, and definitions see L. -You should read this manpage in cojnunction with +You should read this manpage in conjunction with L, which defines many important terms used here. @@ -59,7 +73,7 @@ It is hazardous to use plain git-rebase on a git-debrebase branch, because git-rebase has a tendency to start the rebase too far back in history, and then drop important commits. -Soo L +See L =item git-debrebase status @@ -95,23 +109,32 @@ If the branch is already laundered and stitched, does nothing. =item git-debrebase prepush [--prose=] +If the branch is unstitched, +stitches it, +consuming ffq-prev. + +This is a good command to run before pushing to a git server. +You should consider using B instead, +because that launders the branch too. + =item git-debrebase stitch [--prose=] Stitches the branch, consuming ffq-prev. -This is a good command to run before pushing to a git server. If there is no ffq-prev, it is an error, unless --noop-ok. -You should consider using B instead, -because that launders the branch too. +You should consider using B or B instead. =item git-debrebase scrap Throws away all the work since the branch was last stitched. -This is done by rewinding you to ffq-prev. +This is done by resetting you to ffq-prev +and discarding all working tree changes. + +If you are in the middle of a git-rebase, will abort that too. -=item git-debrebase new-upstream [...] +=item git-debrebase new-upstream [...] [--|-i ] Rebases the delta queue onto a new upstream version. In detail: @@ -147,7 +170,7 @@ the whole new upstream operation is aborted, except for the laundering. -may be whole new Debian version, including revision, +may be a whole new Debian version, including revision, or just the upstream part, in which case -1 will be appended to make the new Debian version. @@ -241,23 +264,44 @@ If the patches implied by the current branch are not a simple superset of those already in debian/patches, make-patches will fail with exit status 7, and an error message. -(The message can be suppress with --quiet-would-amend.) +(The message can be suppressed with --quiet-would-amend.) If the problem is simply that the existing patches were not made by git-debrebase, using dgit quilt-fixup instead should succeed. +=item git-debrebase convert-from-unapplied [] + =item git-debrebase convert-from-gbp [] -Cnnverts a gbp patches-unapplied branch -(not a gbp pq patch queue branch) -into a git-debrebase interchange branch. +Converts any of the following into a git-debrebase interchange branch: + +=over + +=item + +a gbp patches-unapplied branch (but not a gbp pq patch-queue branch) + +=item + +a patches-unapplied git packaging branch containing debian/patches, +as used with quilt + +=item + +a git branch for a package which has no Debian delta - +ie where upstream files are have not been modified in Debian, +so there are no patches + +=back + +(These two commands operate identically and are simply aliases.) -This is done by generating a new anchor merge, -converting the quilt patches as a delta queue, +The conversion is done by generating a new anchor merge, +converting any quilt patches as a delta queue, and dropping the patches from the tree. The upstream commit-ish should correspond to -the gbp upstream branch, if there is one. +the upstream branch or tag, if there is one. It is a snag if it is not an ancestor of HEAD, or if the history between the upstream and HEAD contains commits which make changes to upstream files. @@ -276,14 +320,14 @@ and if it finds it will make a pseduomerge so that your new git-debrebase view is appropriately fast forward. The result is a well-formed git-debrebase interchange branch. -The result is also fast-forward from the gbp branch. +The result is also fast-forward from the original branch. It is a snag if the new branch looks like it will have diverged, just as for a laundering/unstitching call to git-debrebase; See L, below. Note that it is dangerous not to know whether you are -dealing with a gbp patches-unapplied branch containing quilt patches, +dealing with a (gbp) patches-unapplied branch containing quilt patches, or a git-debrebase interchange branch. At worst, using the wrong tool for the branch format might result in @@ -341,7 +385,7 @@ and any ffq-prev is deleted. This is provided mostly for the test suite and for unusual situations. -It should only be used with a care and +It should only be used with care and with a proper understanding of the underlying theory. Be sure to not accidentally treat the result as @@ -414,6 +458,20 @@ and it should not be necessary. =back +=item git-debrebase forget-was-ever-debrebase + +Deletes the ffq-prev and debrebase-last refs +associated with this branch, +that git-debrebase and dgit use to determine +whether this branch is managed by git-debrebase, +and what previous head may need to be stitched back in. + +This can be useful if you were just playing with git-debrebase, +and have used git-reset --hard to go back to a commit +before your experiments. + +Do not use this if you expect to run git-debrebase on the branch again. + =back =head1 OPTIONS @@ -488,6 +546,17 @@ This is provided mostly for the benefit of the test suite. Requests (more) debugging. May be repeated. +=item --experimental-merge-resolution + +Enable experimental code for handling general merges +(see L). + +This option may generate lossage of various kinds, +including misleading error messages, +references to nonexistent documentation, and +you being handed an incomprehensible pile of +multidimensional merge wreckage. + =back =head1 UNSTITCHING AND LAUNDERING @@ -565,6 +634,6 @@ The result is the laundered branch. =head1 SEE ALSO git-debrebase(1), -dgit-maint-rebase(7), +dgit-maint-debrebase(7), dgit(1), gitglossary(7)