X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=git-debrebase;h=75a8f51a96b1638bd6d4847c0b6f721bd113a51a;hb=92c9546d19a2e4edf3de98b7487d582237a19ca0;hp=cdd6348a122efc405a6de50d3338d6b1356da12d;hpb=4b9de539daea1c590687fcf144b0f36cc99609ed;p=dgit.git diff --git a/git-debrebase b/git-debrebase index cdd6348a..75a8f51a 100755 --- a/git-debrebase +++ b/git-debrebase @@ -19,22 +19,9 @@ # along with this program. If not, see . -# usages: +# undocumented usages: # -# git-debrebase [] new-upstream-v0 \ -# [ \ -# [ ...] \ -# [...]] -# -# git-debrebase [ --] [] -# git-debrebase [] analyse -# git-debrebase [] breakwater # prints breakwater tip only -# git-debrebase [] stitch [--prose=] -# git-debrebase [] launder-v0 # prints breakwater tip etc. # git-debrebase [] downstream-rebase-launder-v0 # experimental -# -# git-debrebase [] convert-from-gbp [] -# git-debrebase [] convert-to-gbp # problems / outstanding questions: # @@ -438,6 +425,23 @@ sub classify ($) { # multi-orig upstreams are represented with an anchor merge # from a single upstream commit which combines the orig tarballs + # Every anchor tagged this way must be a merge. + # We are relying on the + # [git-debrebase anchor: ...] + # commit message annotation in "declare" anchor merges (which + # do not have any upstream changes), to distinguish those + # anchor merges from ordinary pseudomerges (which we might + # just try to strip). + # + # However, the user is going to be doing git-rebase a lot. We + # really don't want them to rewrite an anchor commit. + # git-rebase trips up on merges, so that is a useful safety + # catch. + # + # BreakwaterStart commits are also anchors in the terminology + # of git-debrebase(5), but they are untagged (and always + # manually generated). + my $badanchor = sub { $unknown->("git-debrebase \`anchor' but @_"); }; @p == 2 or return $badanchor->("has other than two parents"); $haspatches and return $badanchor->("contains debian/patches");