annotated merges seem to be working

This commit is contained in:
Philip C Monk 2015-04-13 17:29:39 -04:00
parent 9e10039dfc
commit b62bacbf1d
5 changed files with 211 additions and 55 deletions

View File

@ -16,6 +16,7 @@
[%nice ~]
[%rush %tang (list tank)]
==
++ milk (trel ship desk silk)
++ move ,[p=bone q=(mold note gift)]
++ note
$% $: %c
@ -53,7 +54,7 @@
[%dune p=(set beam) q=(unit gage)] :: unit literal
[%file p=beam] :: from clay
[%join p=mark q=silk r=silk] :: merge
[%mash p=mark q=silk r=silk] :: merge
[%mash p=mark q=milk r=milk] :: merge
[%mute p=silk q=(list (pair wing silk))] :: mutant
[%pact p=silk q=silk] :: patch
[%reef ~] :: kernel reef
@ -141,7 +142,7 @@
++ work
|= sih=sign
^+ +>
~& > [%working auto=auto gem=gem syd=syd her=her sud=sud]
~| [%working auto=auto gem=gem syd=syd her=her sud=sud]
?: ?=(%meld gem)
?- -.sih
%g
@ -174,10 +175,12 @@
=+ base=[%file [our.hid tic %da lat.hid] (flop pax)]
=+ alis=[%file [her sud cas] (flop pax)]
=+ bobs=[%file [our.hid syd %da lat.hid] (flop pax)]
=+ dali=[%diff base alis]
=+ dbob=[%diff base bobs]
=+ ^- for=mark
=+ (slag (dec (lent pax)) pax)
?~(- %$ i.-)
[%mash for [%diff base alis] [%diff base bobs]]
[%mash for [her sud dali] [our.hid syd dbob]]
==
=+ "failed to merge with strategy {<p.p.are.sih>}"
lose:(spam leaf/- q.p.are.sih)
@ -201,7 +204,8 @@
=+ ^- tan=(list tank)
%- zing
^- (list (list tank))
:~ :~ leaf/"done setting up scratch space in %{-}"
:~ :~ leaf/""
leaf/"done setting up scratch space in %{-}"
leaf/"please resolve conflicts in the following files and run"
leaf/":merge %{(trip syd)} our %{-}"
==
@ -209,18 +213,19 @@
~
:~ leaf/""
leaf/"annotated conflicts in:"
>annotated<
>`(list path)`annotated<
==
?~ unnotated
~
:~ leaf/""
leaf/"some conflicts could not be annontated."
leaf/"some conflicts could not be annotated."
leaf/"for these, the scratch space contains"
leaf/"the most recent common ancestor of the"
leaf/"conflicting content."
leaf/""
leaf/"unannotated conflicts in:"
>unnotated<
>`(list path)`unnotated<
==
==
=< win

View File

@ -198,17 +198,14 @@
++ aver :: read
|= mun=mood
^- (unit (unit (each cage silk)))
~? =(for ~zod) [%avering mun]
?: &(=(p.mun %u) !=(p.q.mun now)) :: prevent bad things
~& [%clay-fail p.q.mun %now now]
!!
=+ ezy=?~(ref ~ (~(get by haw.u.ref) mun))
?^ ezy
`(bind u.ezy (cury same %&))
~? =(for ~zod) [%case-to-aeoning mun]
=+ nao=(case-to-aeon:ze q.mun)
:: ~& [%aver-mun nao [%from syd lim q.mun]]
~? =(for ~zod) [%reading-at-aeon mun]
?~(nao ~ (read-at-aeon:ze u.nao mun))
::
++ made-to-tage
@ -519,19 +516,19 @@
++ take-patch
|= res=(each bead (list tank))
^+ +>
~& > %taking-patch
:: ~& %taking-patch
?: ?=(%| -.res)
%_ +>.$
dok ~
yel
[[hen %note '!' %rose [" " "" ""] leaf/"clay patch failed" p.res] yel]
==
~& > %editing
:: ~& %editing
=^ hat +>.$
(edit:ze now %& *cart ?~(dok ~|(%no-changes !!) sot.u.dok))
~& > %edited
:: ~& %edited
=. +>.$ wake
~& > %woked
:: ~& %woked
?~ dok ~& %no-dok +>.$
?^ lon.u.dok ~& %not-done-diffing !!
=>
@ -547,7 +544,7 @@
?^ lon.u.dok ~& %not-done-diffing !!
=+ cay=q.p.res
?@ p.cay ~| %patch-bad-marc !!
~& > %canning
:: ~& %canning
=+ ^= can
|- ^- (list ,[path cage])
?~ p.p.cay
@ -565,10 +562,10 @@
!!
:- ((hard path) -.q.coy)
[q.i.p.p.cay (slot 3 coy)]
~& > %canned
~& > %checking-out
:: ~& %canned
:: ~& %checking-out
=. ank.dom (checkout-ankh:ze (mo can))
~& > %checked-out
:: ~& %checked-out
?~ hez +>.$(dok ~)
=+ ^= ceq
|= a=miso
@ -576,8 +573,8 @@
&(?=(%ins -.a) ?=(%mime -.+.a))
&(?=(%mut -.a) ?=(%mime -.+>.a))
==
~& > %forming-ergo
=- ~& > %formed-ergo -
:: ~& %forming-ergo
:: =- ~& %formed-ergo -
%_ +>.$
dok ~
tag :: ?~(hez reg :_(reg [u.hez [%ergo who syd let.dom]]))
@ -904,9 +901,9 @@
==
=+ nao=(case-to-aeon:ze q.p.q.i.xiq)
?~ nao $(xiq t.xiq, xaq [i.xiq xaq])
~& > %reading-at-aeon
:: ~& %reading-at-aeon
=+ vid=(read-at-aeon:ze u.nao p.q.i.xiq)
~& > %red-at-aeon
:: ~& %red-at-aeon
?~ vid ~& [%oh-well mood=p.q.i.xiq] $(xiq t.xiq, xaq [i.xiq xaq])
$(xiq t.xiq, ..wake (balk p.i.xiq u.vid p.q.i.xiq))
::
@ -1255,20 +1252,17 @@
++ read-x
|= [yon=aeon pax=path]
^- (unit (unit (each cage silk)))
~? =(for ~zod) [%reading-x yon pax]
=+ tak=(~(get by hit.dom) yon)
?~ tak
~
?: &(?=(~ ref) =(yon let.dom))
`(bind q.ank:(descend-path:(zu ank.dom) pax) (corl (cury same %&) tail))
~? =(for ~zod) [%coming-along yon pax]
=+ yak=(tako-to-yaki u.tak)
=+ lob=(~(get by q.yak) pax)
?~ lob
[~ ~]
=+ mar=(lobe-to-mark u.lob)
?. ?=(?(%hoon %hook) mar)
~? =(for ~zod) [%not-hooning yon pax]
[~ ~ %| (lobe-to-silk pax u.lob)]
:^ ~ ~ %&
:+ mar [%atom %t]
@ -1448,15 +1442,15 @@
::
%fine
?: =(r.ali.dat r.bob.dat)
~& > [%fine-trivial ali=<ali> bob=<bob> r.ali.dat r.bob.dat]
~& [%fine-trivial ali=<ali> bob=<bob> r.ali.dat r.bob.dat]
(done:he ~)
?: (~(has in (reachable-takos r.bob.dat)) r.ali.dat)
~& > [%fine-mostly-trivial ali=<ali> bob=<bob>]
~& [%fine-mostly-trivial ali=<ali> bob=<bob>]
(done:he ~)
?. (~(has in (reachable-takos r.ali.dat)) r.bob.dat)
~& > [%fine-not-so-trivial ali=<ali> bob=<bob>]
~& [%fine-not-so-trivial ali=<ali> bob=<bob>]
(error:he %bad-fine-merge ~)
~& > [%fine-lets-go ali=<ali> bob=<bob>]
~& [%fine-lets-go ali=<ali> bob=<bob>]
=. new.dat ali.dat
=. erg.dat
%- mo ^- (list ,[path ?])
@ -2203,7 +2197,6 @@
++ scry :: inspect
|= [fur=(unit (set monk)) ren=@tas his=ship syd=desk lot=coin tyl=path]
^- (unit (unit cage))
~? =(his ~zod) [%scrying ren syd lot tyl]
=+ got=(~(has by fat.ruf) his)
=+ luk=?.(?=(%$ -.lot) ~ ((soft case) p.lot))
?~ luk [~ ~]

View File

@ -50,6 +50,7 @@
++ kiss :: in request ->$
$% [%exec p=@p q=beak r=(unit silk)] :: make / kill
== ::
++ milk (trel ship desk silk) :: sourced silk
++ move ,[p=duct q=(mold note gift)] :: local move
++ note :: out request $->
$% $: %c :: to %clay
@ -73,7 +74,7 @@
[%dune p=(set beam) q=(unit gage)] :: unit literal
[%file p=beam] :: from clay
[%join p=mark q=silk r=silk] :: merge
[%mash p=mark q=silk r=silk] :: merge
[%mash p=mark q=milk r=milk] :: annotate
[%mute p=silk q=(list (pair wing silk))] :: mutant
[%pact p=silk q=silk] :: patch
[%plan p=beam q=spur r=hood] :: structured assembly
@ -710,10 +711,9 @@
==
::
++ mash
|= [cof=cafe for=mark kas=silk kos=silk]
|= [cof=cafe for=mark mas=milk mos=milk]
^- (bolt gage)
~& > [%lets-see-if-we-cannae-be-mashing for]
%. [cof kas kos]
%. [cof r.mas r.mos]
;~ cope
;~ coax
|=([cof=cafe p=silk q=silk] (make cof p))
@ -733,7 +733,8 @@
=+ too=((soft ,@tas) q:(slap gar [%cnzy %sted]))
?~ too
(flaw cof leaf/"bad ++sted:grad" ~)
(make cof %mash u.too [%done ~ cay] [%done ~ coy])
%+ make cof
[%mash u.too [p.mas q.mas [%done ~ cay]] [p.mos q.mos [%done ~ coy]]]
=+ fom=((soft ,@tas) q:(slap gar [%cnzy %form]))
?~ fom
(flaw cof leaf/"bad ++form:grad" ~)
@ -748,7 +749,12 @@
%+ cope
%^ maul cof
(slap (slap pro [%cnzy %grad]) [%cnzy %mash])
(slop q.cay q.coy)
;: slop
(slop [[%atom %p] p.mas] [[%atom %tas] q.mas])
(slop [[%atom %p] p.mos] [[%atom %tas] q.mos])
q.cay
q.coy
==
|= [cof=cafe dif=vase]
(fine cof u.fom dif)
==
@ -834,7 +840,7 @@
|= [cof=cafe bem=beam]
^- (bolt beam)
?: ?=(%ud -.r.bem) (fine cof bem)
=+ von=(ska ~ %cw bem(s ~))
=+ von=(save ~ %cw bem(s ~))
?~ von [p=cof q=[%1 [%w bem ~] ~ ~]]
(fine cof bem(r [%ud ((hard ,@) +.+:(need u.von))]))
::
@ -859,14 +865,7 @@
++ lear :: load vase
|= [cof=cafe bem=beam]
^- (bolt cage)
~& > [%a-bit-leary bem]
=+ ral=(~(get by keg) %cx bem)
?^ ral
~& > %already-done
(fine cof u.ral)
~& > %not-already-done
=+ von=(ska ~ %cx bem)
~& > [%at-least-cx-worked bem]
=+ von=(save ~ %cx bem)
?~ von
[p=*cafe q=[%1 [[%x bem ~] ~ ~]]]
?~ u.von
@ -876,14 +875,14 @@
++ lend :: load arch
|= [cof=cafe bem=beam]
^- (bolt arch)
=+ von=(ska ~ %cy bem)
=+ von=(save ~ %cy bem)
?~ von [p=cof q=[%1 [%y bem ~] ~ ~]]
(fine cof ((hard arch) q.q:(need u.von)))
::
++ liar :: load vase
|= [cof=cafe bem=beam]
^- (bolt vase)
=+ von=(ska ~ %cx bem)
=+ von=(save ~ %cx bem)
?~ von
[p=*cafe q=[%1 [[%x bem ~] ~ ~]]]
?~ u.von
@ -1020,7 +1019,7 @@
^- (bolt vase)
%+ cope (mail cof p.vax gen)
|= [cof=cafe typ=type fol=nock]
%+ (coup cof) (mock [q.vax fol] (mole (slod (save ska))))
%+ (coup cof) (mock [q.vax fol] (mole (slod save)))
|=(val=* `vase`[typ val])
::
++ make :: reduce silk
@ -1189,7 +1188,7 @@
^- (bolt vase)
%+ cope (malt cof p.gat p.sam)
|= [cof=cafe typ=type]
%+ (coup cof) (mong [q.gat q.sam] (mole (slod (save ska))))
%+ (coup cof) (mong [q.gat q.sam] (mole (slod save)))
|=(val=* `vase`[typ val])
::
++ meow :: assemble
@ -1557,14 +1556,13 @@
exec(q.kig (~(del by q.kig) tik), keg (~(put by keg) [- bem] r.u.rot))
::
++ save
|= sky=sled
^- sled
|= [(unit (set monk)) tem=term bem=beam]
^- (unit (unit cage))
=+ (~(get by keg) tem bem)
?^ -
``u.-
(sky +<.$)
(ska +<.$)
--
--
::

View File

@ -13,6 +13,6 @@
++ form %mime
++ diff |=(mime +<)
++ pact |=(mime +<)
++ join |=([mime mime] `(unit mime)``+<-)
++ join |=([mime mime] `(unit mime)`~)
--
--

View File

@ -1,4 +1,4 @@
:: maybeze
::
:::: /hook/door/term-line/mar
::
/? 314
@ -27,6 +27,7 @@
::
++ pact
|= dif=(urge cord)
~| [%pacting dif]
^- wain
(lurk txt dif)
::
@ -60,6 +61,7 @@
|=(cud=(urge cord) [i.bob cud])
~
==
::
%|
?- -.i.bob
%| ~
@ -88,8 +90,166 @@
--
::
++ mash
|= [ali=(urge cord) bob=(urge cord)]
|= [als=[ship desk] bos=[ship desk] ali=(urge cord) bob=(urge cord)]
^- (urge cord)
(fall (join ali bob) ali)
|^
=. ali (clean ali)
=. bob (clean bob)
|- ^- (urge cord)
?~ ali bob
?~ bob ali
?- -.i.ali
%&
?- -.i.bob
%&
?: =(p.i.ali p.i.bob)
[i.ali $(ali t.ali, bob t.bob)]
?: (gth p.i.ali p.i.bob)
[i.bob $(p.i.ali (sub p.i.ali p.i.bob), bob t.bob)]
[i.ali $(ali t.ali, p.i.bob (sub p.i.bob p.i.ali))]
::
%|
?: =(p.i.ali (lent p.i.bob))
[i.bob $(ali t.ali, bob t.bob)]
?: (gth p.i.ali (lent p.i.bob))
[i.bob $(p.i.ali (sub p.i.ali (lent p.i.bob)), bob t.bob)]
=+ ^- [fic=(unce cord) ali=(urge cord) bob=(urge cord)]
(resolve ali bob)
[fic $(ali ali, bob bob)]
:: ~ :: here, alice is good for a while, but not for the whole
== :: length of bob's changes
::
%|
?- -.i.bob
%|
=+ ^- [fic=(unce cord) ali=(urge cord) bob=(urge cord)]
(resolve ali bob)
[fic $(ali ali, bob bob)]
::
%&
?: =(p.i.bob (lent p.i.ali))
[i.ali $(ali t.ali, bob t.bob)]
?: (gth p.i.bob (lent p.i.ali))
[i.ali $(ali t.ali, p.i.bob (sub p.i.bob (lent p.i.ali)))]
=+ ^- [fic=(unce cord) ali=(urge cord) bob=(urge cord)]
(resolve ali bob)
[fic $(ali ali, bob bob)]
==
==
::
++ annotate :: annotate conflict
|= $: ali=(list ,@t)
bob=(list ,@t)
bas=(list ,@t)
==
^- (list ,@t)
%- zing
^- (list (list ,@t))
%- flop
^- (list (list ,@t))
:- :_ ~
%^ cat 3 '<<<<<<<<<<<<'
%^ cat 3 ' '
%^ cat 3 `@t`(scot %p -.bos)
%^ cat 3 '/'
+.bos
:- bob
:- ~['------------']
:- bas
:- ~['++++++++++++']
:- ali
:- :_ ~
%^ cat 3 '>>>>>>>>>>>>'
%^ cat 3 ' '
%^ cat 3 `@t`(scot %p -.als)
%^ cat 3 '/'
+.als
~
::
++ clean :: clean
|= wig=(urge cord)
^- (urge cord)
?~ wig ~
?~ t.wig wig
?: ?=(%& -.i.wig)
?: ?=(%& -.i.t.wig)
$(wig [[%& (add p.i.wig p.i.t.wig)] t.t.wig])
[i.wig $(wig t.wig)]
?: ?=(%| -.i.t.wig)
$(wig [[%| (welp p.i.wig p.i.t.wig) (welp q.i.wig q.i.t.wig)] t.t.wig])
[i.wig $(wig t.wig)]
::
++ resolve
|= [ali=(urge cord) bob=(urge cord)]
^- [fic=[%| p=(list cord) q=(list cord)] ali=(urge cord) bob=(urge cord)]
=- [[%| bac (annotate alc boc bac)] ali bob]
|- ^- $: $: bac=(list cord)
alc=(list cord)
boc=(list cord)
==
ali=(urge cord)
bob=(urge cord)
==
?~ ali [[~ ~ ~] ali bob]
?~ bob [[~ ~ ~] ali bob]
?- -.i.ali
%&
?- -.i.bob
%& [[~ ~ ~] ali bob] :: no conflict
%|
=+ lob=(lent p.i.bob)
?: =(lob p.i.ali)
[[p.i.bob p.i.bob q.i.bob] t.ali t.bob]
?: (lth lob p.i.ali)
[[p.i.bob p.i.bob q.i.bob] [[%& (sub p.i.ali lob)] t.ali] t.bob]
=+ wat=(scag (sub lob p.i.ali) p.i.bob)
=+ res=$(ali t.ali, bob [[%| (scag (sub lob p.i.ali) p.i.bob) ~] t.bob])
:* :* (welp bac.res wat)
(welp alc.res wat)
(welp boc.res q.i.bob)
==
ali.res
bob.res
==
==
::
%|
?- -.i.bob
%&
=+ loa=(lent p.i.ali)
?: =(loa p.i.bob)
[[p.i.ali q.i.ali p.i.ali] t.ali t.bob]
?: (lth loa p.i.bob)
[[p.i.ali q.i.ali p.i.ali] t.ali [[%& (sub p.i.bob loa)] t.bob]]
=+ wat=(slag (sub loa p.i.bob) p.i.ali)
=+ res=$(ali [[%| (scag (sub loa p.i.bob) p.i.ali) ~] t.ali], bob t.bob)
:* :* (welp bac.res wat)
(welp alc.res q.i.ali)
(welp boc.res wat)
==
ali.res
bob.res
==
::
%|
=+ loa=(lent p.i.ali)
=+ lob=(lent p.i.bob)
?: =(loa lob)
[[p.i.ali q.i.ali q.i.bob] t.ali t.bob]
=+ ^= res
?: (gth loa lob)
$(ali [[%| (scag (sub loa lob) p.i.ali) ~] t.ali], bob t.bob)
~& [%scagging loa=loa pibob=p.i.bob slag=(scag loa p.i.bob)]
$(ali t.ali, bob [[%| (scag (sub lob loa) p.i.bob) ~] t.bob])
:* :* (welp bac.res ?:((gth loa lob) p.i.bob p.i.ali))
(welp alc.res q.i.ali)
(welp boc.res q.i.bob)
==
ali.res
bob.res
==
==
==
--
--
--