chiark / gitweb /
git-debrebase: Provide convert-from-unapplied aa alias for -gbp
[dgit.git] / git-debrebase.1.pod
index eb85c6c4f5e78b068a4bb7a4002f6b91cf88cf8b..00b664b756f2d81bcb77464065a229fdfebfc448 100644 (file)
@@ -95,16 +95,29 @@ If the branch is already laundered and stitched, does nothing.
 
 =item git-debrebase prepush [--prose=<for commit message>]
 
+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<conclude> instead,
+because that launders the branch too.
+
 =item git-debrebase stitch [--prose=<for commit message>]
 
 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<conclude> instead,
-because that launders the branch too.
+You should consider using B<prepush> or B<conclude> 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 <new-version> [<upstream-details>...]
 
@@ -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 [<upstream-commit-ish>]
+
 =item git-debrebase convert-from-gbp [<upstream-commit-ish>]
 
-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</Establish the current branch's ffq-prev>, 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 [<convert-options>] [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<upstream> 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<git-debrebase(5)/General merges>).
+
+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