chiark / gitweb /
git-debrebase: explain why breakwater bases must be merges
[dgit.git] / NOTES.git-debrebase
index 635f72bbbc5ddde5a431e0d8720f9496ac447f5c..95ad453e0c271d9aaa2a767df3e5be02060df02b 100644 (file)
@@ -47,6 +47,18 @@ overall format
 
 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