Skip to content

Instantly share code, notes, and snippets.

@kowey
Created July 15, 2010 14:06
Show Gist options
  • Save kowey/476978 to your computer and use it in GitHub Desktop.
Save kowey/476978 to your computer and use it in GitHub Desktop.
Notational tricks:
* iff a merger has mergers as both children, break them up with a newline
* use L/R for "left" and "right" repo
* use capital letters for the hunk patches
* normalise m(R L) to m(L R)
* normalise m(m(...) X) to m(X m(...))
* normalise m(m(R..) m(L..)) to m(m(L..) m(R..))
* normalise m(.. t) to m(t ..)
* save repeated trees as tN
And the patch series...
R1
R2
t0 = m(L1 R1)
t1 = m(t0 R2)
t2 = m(t1 m(L2 t0))
t3 = m(t2 m(L3 m(L2 t0)))
t4 = m(t3 m(L4 m(L3 m(L2 t0))))
#!/bin/bash
rm -rf example-1 example-2
mkdir example-1
mkdir example-2
darcs init --repo example-1/common --hashed
darcs init --repo example-2/common --darcs
for r in 1 2; do
cd example-$r
cd common
touch f
darcs record -a -lm "example-$r 0 " -A me --ignore-times
cd ..
darcs get common branch-x
cd branch-x
for i in 1 2 3 4; do
echo x$i > f
darcs record -a -lm "example-$r x $i" -A me --ignore-times
done
cd ..
darcs get common branch-y
cd branch-y
for i in 1 2; do
echo y$i > f
darcs record -a -lm "example-$r y $i" -A me --ignore-times
done
darcs pull ../branch-x -a
cd ..
cd ..
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment