X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase.5.pod;h=439fd63b89b30155960ae5821c6f19ca3571b677;hp=e44ad3498ae49b71983f6bb05b1beeab2f818a9e;hb=bb2d12326a03e8925104937569fdab0ebdc34ccb;hpb=e7d1fe8cc4bf40f86d3fb53fe48c4240202fd708 diff --git a/git-debrebase.5.pod b/git-debrebase.5.pod index e44ad349..439fd63b 100644 --- a/git-debrebase.5.pod +++ b/git-debrebase.5.pod @@ -30,7 +30,8 @@ However, use of git-debrebase in Debian does not make anything harder for derivatives, and it can make some things easier. When using gitk on branches managed by git-debrebase, -B and B +B, B +and B (or B) produce more useful output than the default. =head1 TERMINOLOGY @@ -377,8 +378,11 @@ from the interchange branch and no pseudomerge is needed. When ffq-prev is not present, C records some ancestor of refs/B, (usually, the result of last stitch). -This can be used to quickly determine whether refs/B -is being maintained in git-debrebase form. +This is used for status printing and some error error checks - +especially for printing guesses what a problem is. +To determine whether a branch is +is being maintained in git-debrebase form +it is necessary to walk its history. =head1 OTHER MERGES @@ -486,6 +490,63 @@ These patch files can be stripped out and/or regenerated as needed. =back +=head1 ILLEGAL OPERATIONS + +Some git operations are not permitted in this data model. +Performing them will break git-debrebase. + +=over + +=item General merges + +See L, above. + +=item git-rebase starting too soon, or without base argument + +git-rebase must not be invoked in such a way that +the chosen base is before the anchor, +or before the last pseudomerge. +This is because git-rebase mangles merges. +git rebase --preserve-merges is also dangerous. + +git-rebase without a base argument will often start too early. + +For these reasons, +it is better to use git-debrebase and +let it choose the base +for your rebase. +If you do realise you have make this mistake, +it is best to use the reflog to recover to a suitable +good previous state. + +=item Editing debian/patches + +debian/patches is an output from git-debrebase, +not an input. +If you edit patches git-debrebase will complain +and refuse to work. +If you add patches your work is likely to be discarded. + +Instead of editing patches, +use git-debrebase to edit the corresponding commits. + +=item Renaming (etc.) branch while unstitched + +The previous HEAD, +which will be pseudomerged over +by operations like git-debrebase stitch, +is recorded in a ref name dervied from your branch name. + +If you rename unstitched branches, +this information can get out of step. + +Conversely, +creating a new branch from an unstitched branch +is good for making a branch to play about in, +but the result cannot be stitched. + +=back + =head1 COMMIT MESSAGE ANNOTATIONS git-debrebase makes annotations @@ -493,27 +554,31 @@ in the messages of commits it generates. The general form is - [git-debrebase[ COMMIT-TYPE [ ARGS...]]: PROSE, MORE PROSE] + [git-debrebase COMMIT-TYPE [ ARGS...]: PROSE, MORE PROSE] git-debrebase treats anything after the colon as a comment, paying no attention to PROSE. The full set of annotations is: - [git-debrebase: split mixed commit, debian part] - [git-debrebase: split mixed commit, upstream-part] - [git-debrebase: convert dgit import, debian changes] + [git-debrebase split: mixed commit, debian part] + [git-debrebase split: mixed commit, upstream-part] + [git-debrebase onvert dgit import: debian changes] [git-debrebase anchor: convert dgit import, upstream changes] [git-debrebase upstream-combine . PIECE[ PIECE...]: new upstream] [git-debrebase anchor: new upstream NEW-UPSTREAM-VERSION, merge] - [git-debrebase: new upstream NEW-UPSTREAM-VERSION, changelog] - [git-debrebase: export and commit patches] + [git-debrebase changelog: new upstream NEW-UPSTREAM-VERSION] + [git-debrebase make-patches: export and commit patches] [git-debrebase convert-from-gbp: drop patches] [git-debrebase anchor: declare upstream] [git-debrebase pseudomerge: stitch] + [git-debrebase merged-breakwater: constructed from vanilla merge] + [git-debrebase convert-to-gbp: commit patches] + [git-debrebase convert-from-dgit-view upstream-import-convert: VERSION] + [git-debrebase convert-from-dgit-view drop-patches] Only anchor merges have the C<[git-debrebase anchor: ...]> tag. Single-parent anchors are not generated by git-debrebase,