X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase.1.pod;h=00b664b756f2d81bcb77464065a229fdfebfc448;hp=eb85c6c4f5e78b068a4bb7a4002f6b91cf88cf8b;hb=e1026645bc6576b9b0f4c20e59b5f785c125aff2;hpb=69aae724c3d05a20219e5a9642e162dd65ef2fe9 diff --git a/git-debrebase.1.pod b/git-debrebase.1.pod index eb85c6c4..00b664b7 100644 --- a/git-debrebase.1.pod +++ b/git-debrebase.1.pod @@ -95,16 +95,29 @@ 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. + +If you are in the middle of a git-rebase, will abort that too. =item git-debrebase new-upstream [...] @@ -241,18 +254,39 @@ 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. +Cnnverts 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 -This is done by generating a new anchor merge, -converting the quilt patches as a delta queue, +=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.) + +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. @@ -271,14 +305,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 @@ -343,6 +377,86 @@ Be sure to not accidentally treat the result as a git-debrebase branch, or you will drop all the patches! +=item git-debrebase convert-from-dgit-view [] [upstream] + +Converts any dgit-compatible git branch +corresponding to a (possibly hypothetical) 3.0 quilt dsc source package +into a git-debrebase-compatible branch. + +This operation should not be used +if the branch is already in git-debrebase form. +Normally git-debrebase will refuse to continue in this case +(or silently do nothing if the global --noop-ok option is used). + +Some representation of the original upstream source code will be needed. +If I is supplied, that must be a suitable upstream commit. +By default, +git-debrebase will look first for git tags (as for new-upstream), +and then for orig tarballs which it will ask dgit to process. + +The upstream source must be exactly right and +all the patches in debian/patches must be up to date. +Applying the patches from debian/patches to the upstream source +must result in exactly your HEAD. + +The output is laundered and stitched. +The resulting history is not particularly pretty, +especially if orig tarball(s) were imported +to produce a synthetic upstream commit. + +The available convert-options are as follows. +(These must come after convert-from-dgit-view.) + +=over + +=item --[no-]diagnose + +Print additional error messages to help diagnose +failure to find an appropriate upstream. +--no-diagnose is the default. + +=item --build-products-dir + +Directory to look in for orig tarballs. +The default is the git config option +dgit.default.build-products-dir +or failing that, C<..>. +Passed on to dgit, if git-debrebase invokes dgit. + +=item --[no-]origs + +Whether to try to look for or use any orig tarballs. +--origs is the default. + +=item --[no-]tags + +Whether to try to look for or use any upstream git tags. +--tags is the default. + +=item --always-convert-anyway + +Perform the conversion operation, +producing unpleasant extra history, +even if the branch seems to be in git-debrebase form already. +This should not be done unless necessary, +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 @@ -417,6 +531,17 @@ This is provided mostly for the benefit of the test suite. Requests (more) debugging. May be repeated. +=item --experimntal-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