[prev in list] [next in list] [prev in thread] [next in thread]
List: darcs-conflicts
Subject: [darcs-conflicts] A permutation of four patches
From: Arjan Boeijink <w.a.boeijink () student ! utwente ! nl>
Date: 2005-12-24 11:47:12
Message-ID: 43AD3540.5060506 () student ! utwente ! nl
[Download RAW message or body]
Hi,
Because three patch permutations don't cover all possible commutes, I
tried to write down the permutation of four non-commuting patches.
A small problem with four patch permutations is that multiple ways to
permute exist, though they overlap for a large parts.
This permutation of four non-commuting is a straightforward extension on
permutation of three patches.
The main difference is that it includes a middle conflict with right
conflict commute, and the patch sequence in reversed order has two
middle conflicts.
A B C D
<-->AB <A;@B| |@A;B> C D
<-->AC <A;@B| (A)<;B@C| |@A;BC> D
<-->AD <A;@B| (A)<;B@C| (A)<;BC@D| |@A;BCD>
<-->BC <AB;@C| (A)[@B](C) (A)<;BC@D| |@A;BCD>
<-->BD <AB;@C| (AB,B)<;C@D| (A)[@B](C,CD) |@A;BCD>
<-->CD <ABC;@D| (AB,B)[@C](D) (A)[@B](C,CD) |@A;BCD>
<-->BA <ABC;@D| (AB,B)[@C](D) |@AB;>(C,CD) |@B;CD>
<-->CA <ABC;@D| |@ABC;>(D) (B)[@C](D) |@B;CD>
<-->CB <ABC;@D| |@ABC;>(D) |@BC;>(D) |@C;D>
<-->DA A <BC;@D| |@BC;>(D) |@C;D>
<-->CD A B <C;@D| |@C;D>
In a different order the permutation becomes:
A B C D
<-->AB <A;@B| |@A;B> C D
<-->CD <A;@B| |@A;B> <C;@D| |@C;D>
<-->AD <A;@B| (A)<B;C@D| |@AB;C>(D) |@C;D>
<-->BD <ABC;@D| (AB)|@B;[C]|(D) |@AB;C>(D) |@C;D>
<-->AC <ABC;@D| (AB)|@B;[C]|(D) (AB)|[B];@C|(D) |@A;BCD>
<-->BC <ABC;@D| (AB,B)[@C](D) (A)[@B](C,CD) |@A;BCD>
<-->CB <ABC;@D| (AB)|@B;[C]|(D) (AB)|[B];@C|(D) |@A;BCD>
<-->DB <A;@B| (A)<B;C@D| (AB)|[B];@C|(D) |@A;BCD>
<-->CA <A;@B| (A)<B;;C@D| |@AB;C>(D) |@C:D>
<-->DA <A;@B| |@A;B> <C;@D| |@C;D>
<-->DC <A;@B| |@A;B> C D
The tricky part here is commutation of the two middle conflicts, where
their identities are swapped but their effect can't be:
(AB,B)[@C](D) (A)[@B](C,CD) <-> (AB)|@B;[C]|(D) (AB)|[B];@C|(D)
Translating the resulting conflicts to existing conflict types gives
(although I'm not sure if this is correct.):
(AB)|@B;[C]|(D) ~= (ABC)<C^;B^@B|(CD)
(AB)|[B];@C|(D) ~= (AB)|@C;B^>(BCD)
Permutations in other orders overlap mostly with above two and don't
contain new commute cases.
--Arjan
_______________________________________________
darcs-conflicts mailing list
darcs-conflicts@darcs.net
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-conflicts
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic