fixed lose-changes-when-unrelated-conflict bug

This commit is contained in:
Philip C Monk 2015-09-18 20:15:36 -04:00
parent 0bfa034edb
commit 06bda9cd8c

View File

@ -1933,15 +1933,18 @@
|= [pax=path lob=lobe] |= [pax=path lob=lobe]
(~(has by q.bas.dat) pax) (~(has by q.bas.dat) pax)
=. cal.dal.dat =. cal.dal.dat
%- mo %- mo ^- (list (pair path lobe))
%+ skim (~(tap by q.bas.dat)) %+ murn (~(tap by q.bas.dat))
|= [pax=path lob=lobe] |= [pax=path lob=lobe]
^- (unit (pair path lobe))
=+ a=(~(get by q.ali.dat) pax) =+ a=(~(get by q.ali.dat) pax)
=+ b=(~(get by q.bob.dat) pax) =+ b=(~(get by q.bob.dat) pax)
?& ?=(^ a) ?. ?& ?=(^ a)
!=([~ lob] a) !=([~ lob] a)
=([~ lob] b) =([~ lob] b)
== ==
~
`[pax +.a]
=. can.dal.dat p.can =. can.dal.dat p.can
=. old.dal.dat =. old.dal.dat
%- mo ^- (list ,[path ~]) %- mo ^- (list ,[path ~])
@ -1973,15 +1976,18 @@
|= [pax=path lob=lobe] |= [pax=path lob=lobe]
(~(has by q.bas.dat) pax) (~(has by q.bas.dat) pax)
=. cal.dob.dat =. cal.dob.dat
%- mo %- mo ^- (list (pair path lobe))
%+ skim (~(tap by q.bas.dat)) %+ murn (~(tap by q.bas.dat))
|= [pax=path lob=lobe] |= [pax=path lob=lobe]
^- (unit (pair path lobe))
=+ a=(~(get by q.ali.dat) pax) =+ a=(~(get by q.ali.dat) pax)
=+ b=(~(get by q.bob.dat) pax) =+ b=(~(get by q.bob.dat) pax)
?& ?=(^ b) ?. ?& ?=(^ b)
!=([~ lob] b) !=([~ lob] b)
=([~ lob] a) =([~ lob] a)
== ==
~
`[pax +.b]
=. can.dob.dat p.can =. can.dob.dat p.can
=. old.dob.dat =. old.dob.dat
%- mo ^- (list ,[path ~]) %- mo ^- (list ,[path ~])
@ -2070,7 +2076,7 @@
%- ~(urn by con) %- ~(urn by con)
|= [pax=path *] |= [pax=path *]
(~(got by q.bas.dat) pax) (~(got by q.bas.dat) pax)
=. con :: add/del conflict =. con :: change/del conflict
%- ~(uni by con) %- ~(uni by con)
%- mo ^- (list ,[path *]) %- mo ^- (list ,[path *])
%+ skim (~(tap by old.dal.dat)) %+ skim (~(tap by old.dal.dat))
@ -2079,7 +2085,7 @@
~| %strange-add-and-del ~| %strange-add-and-del
!! !!
(~(has by can.dob.dat) pax) (~(has by can.dob.dat) pax)
=. con :: add/del conflict =. con :: change/del conflict
%- ~(uni by con) %- ~(uni by con)
%- mo ^- (list ,[path *]) %- mo ^- (list ,[path *])
%+ skim (~(tap by old.dob.dat)) %+ skim (~(tap by old.dob.dat))
@ -2126,6 +2132,13 @@
[(lobe-to-mark u.-) u.-] [(lobe-to-mark u.-) u.-]
[p q.q]:cay [p q.q]:cay
[(~(put by hat) pax p.bol) (~(put by lat) p.bol bol)] [(~(put by hat) pax p.bol) (~(put by lat) p.bol bol)]
:: ~& old=(~(run by old) mug)
:: ~& newdal=(~(run by new.dal.dat) mug)
:: ~& newdob=(~(run by new.dob.dat) mug)
:: ~& caldal=(~(run by cal.dal.dat) mug)
:: ~& caldob=(~(run by cal.dob.dat) mug)
:: ~& hot=(~(run by hot) mug)
:: ~& cas=(~(run by cas) mug)
=+ ^- hat=(map path lobe) :: all the content =+ ^- hat=(map path lobe) :: all the content
%- ~(uni by old) %- ~(uni by old)
%- ~(uni by new.dal.dat) %- ~(uni by new.dal.dat)
@ -2134,6 +2147,7 @@
%- ~(uni by cal.dob.dat) %- ~(uni by cal.dob.dat)
%- ~(uni by hot) %- ~(uni by hot)
cas cas
:: ~& > hat=(~(run by hat) mug)
=+ ^- del=(map path ,?) =+ ^- del=(map path ,?)
(~(run by (~(uni by old.dal.dat) old.dob.dat)) |=(~ %|)) (~(run by (~(uni by old.dal.dat) old.dob.dat)) |=(~ %|))
=. gon.dat [%& (sa (turn (~(tap by con)) head))] =. gon.dat [%& (sa (turn (~(tap by con)) head))]