chiark / gitweb /
git-debrebase: maintain debrebase-last
[dgit.git] / git-debrebase.1.pod
index ce442dafad0ead2dfd91bcdf371d20c5187d8cf0..9ddf9390b40781b2aad7724c5c29685aadfe7c58 100644 (file)
@@ -155,6 +155,38 @@ that its command line syntax is optimal.
 We may want to introduce an incompatible replacement syntax
 under the name C<new-upstream>.
 
+=item git-debrebase convert-from-gbp [<upstream-commitish>]
+
+Cnnverts a gbp patches-unapplied branch
+(not a gbp pq patch queue branch)
+into a git-debrebase interchange branch.
+
+This is done by generating a new anchor merge,
+converting the quilt patches as a delta queue,
+and dropping the patches from the tree.
+
+The upstream commitish should correspond to
+the gbp upstream branch.
+It is a problem 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.
+
+It is also a problem if the specified upstream
+has a debian/ subdirectory.
+This check exists to detect certain likely user errors,
+but if this situation is true and expected,
+forcing it is fine.
+
+The result is a well-formed git-debrebase interchange branch.
+The result is also fast-forward from the gbp branch.
+
+Note that it is dangerous not to know whether you are
+dealing with a gbp patches-unappled branch containing quilt patches,
+or a git-debrebase interchange branch.
+At worst,
+using the wrong tool for the branch format might result in
+a dropped patch queue!
+
 =back
 
 =head1 UNDERLYING AND SUPPLEMENTARY OPERATIONS
@@ -166,6 +198,111 @@ under the name C<new-upstream>.
 Prints the breakwater tip commitid.
 Fails if your HEAD branch is not laundered.
 
+=item git-debrebase analyse
+
+Walks the history of the current branch,
+most recent commit first,
+back until the most recent anchor,
+printing the commit object id,
+and commit type and info
+(ie the semantics in the git-debrebase model)
+for each commit.
+
+=item git-debrebase record-ffq-prev
+
+Establishes the current branch's ffq-prev,
+as discussed in L</UNSTITCHING AND LAUNDERING>,
+but does not launder the branch or move HEAD.
+
+It is an error if the ffq-prev could not be recorded.
+It is also an error if an ffq-prev has already been recorded,
+unless --noop-ok.
+
+=item git-debrebase launder-v0
+
+Launders the branch without recording anything in ffq-prev.
+Then prints some information about the current branch.
+Do not use this operation;
+it will be withdrawn soon.
+
+=item git-debrebase convert-to-gbp
+
+Converts a laundered branch into a
+gbp patches-unapplied branch containing quilt patches.
+The result is not fast forward from the interchange branch,
+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 
+with a proper understanding of the underlying theory.
+
+Be sure to not accidentally treat the result as
+a git-debrebase branch,
+or you will drop all the patches!
+
+=back
+
+=head1 OPTIONS
+
+This section documents the general options
+to git-debrebase
+(ie, the ones which follow git-debrebase).
+Individual operations may have their own options which are
+docuented under each operation.
+
+=over
+
+=item -f<problem-id>
+
+Turns problems with id <problem-id> into warnings.
+
+Some troublesome things which git-debrebase encounters
+are B<problem>s.
+(The specific instances are discussed
+in the text for the relvant operation.)
+
+When a problem is detected,
+a message is printed to stderr containing the problem id
+(in the form C<-f<problem-idE<gt>>),
+along with some prose.
+
+If problems are detected, git-debrebase does not continue,
+unless the relevant -f<problem-id> is specified,
+or --force is specified.
+
+=item --force
+
+Turns all problems into warnings.
+See the -f<problem-id> option.
+
+Do not invoke git-debrebase --force in scripts and aliases;
+instead, specify the particular -f<problem-id> for expected problems.
+
+=item --noop-ok
+
+Suppresses the error in
+some situations where git-debrebase does nothing,
+because there is nothing to do.
+
+The specific instances are discussed
+in the text for the relvant operation.
+
+=item --anchor=<commitish>
+
+Treats <commitish> as an anchor,
+regardless of what it's actually like.
+
+(It is a problem for
+git-debrebase new-upstream operations
+if <commitish> is the previous anchor to be used,
+because treating an arbitrary commit as an anchor
+means forgoing upstream coherency checks.)
+
+=item -D
+
+Requests (more) debugging.  May be repeated.
+
 =back
 
 =head1 UNSTITCHING AND LAUNDERING