Please don't set Mail-Followup-To: here, and keep the Cc: list.
Raimund Berger schrieb:
do the following conditions hold
(i) A+B == B+A for all commits A,B
(ii) (A+B)+C == A+(B+C) for all A,B,C
where "+" designates the standard git 3way merge?
I don't think that (ii) does holds in general.
[ In the examples consider each letter/symbol on a line by itself; this
saves vertical space. ]
Start with this (the merge base):
f(a)
and there are three topic branches growing from here:
A makes this (rename f->g):
g(a)
B makes this (add another f):
f(a)f(b)
C makes this (renames a->c):
f(c)
Then A+B is
g(a)f(b)
A+C is
g(c)
B+C is
f(c)f(b)
(A+B)+C is
g(c)f(b)
but A+(B+C) is ambiguous:
g(c)f(b)
or
f(c)g(b)
-- Hannes