chiark / gitweb /
git-debrebase: explain why breakwater bases must be merges
[dgit.git] / NOTES.git-debrebase
index 6510c6ec0c294ec554e61e9d1bec8f5dcb2620bd..95ad453e0c271d9aaa2a767df3e5be02060df02b 100644 (file)
 =========
 
 special commit tags
+overall format
+  [git-debrebase[ COMMIT-TYPE [ ARGS...]]: PROSE, MORE PROSE]
 
-[git-debrebase split mixed commit: debian part]
-[git-debrebase split mixed commit: upstream part]
-[git-debrebase convert dgit import: debian changes]
-[git-debrebase convert dgit import: upstream changes]
+[git-debrebase: split mixed commit, debian part]
+[git-debrebase: split mixed commit, upstream-part]
+[git-debrebase: convert dgit import, debian changes]
+[git-debrebase breakwater: convert dgit import, upstream changes]
 
-[git-debrebase new-upstream combine . [PIECES...]]
-[git-debrebase new-upstream breakwater NEW-UPSTREAM-VERSION]
-[git-debrebase new-upstream changelog NEW-UPSTREAM-VERSION]
+[git-debrebase upstream-combine . PIECE[ PIECE...]: new upstream]
+[git-debrebase breakwater: new upstream NEW-UPSTREAM-VERSION, merge]
+[git-debrebase: new upstream NEW-UPSTREAM-VERSION, changelog]
 
-[git-debrebase gbp2debrebase drop-patches]
-[git-debrebase declare-upstream breakwater]
+[git-debrebase: gbp2debrebase, drop patches]
+[git-debrebase breakwater: declare upstream]
 
 m{^\[git-debrebase (?:\w*-)?upstream combine \.((?: $extra_orig_namepart_re)+)\]}
 
+Every breakwater commit must be a merge.  In principle, this is not
+necessary.  After all, we are relying on the
+    [git-debrebase breakwater: ...]
+commit message annotation in "declare" breakwater merges (which
+do not have any upstream changes), to distinguish those breakwater
+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 a breakwater base commit.  git-rebase
+trips up on merges, so that is a useful safety catch.
+
+
 =========
 
 workflow