#!/bin/bash # We have to fake the merges here, because they cause conflicts with # three-way command-line merge, and kdiff3 may not be available. export HGMERGE=$(mktemp) echo '#!/bin/sh' >> $HGMERGE echo 'echo first change > "$1"' >> $HGMERGE echo 'echo third change >> "$1"' >> $HGMERGE chmod 700 $HGMERGE #$ name: init hg init myrepo cd myrepo echo first change >> myfile hg add myfile hg commit -m 'first change' echo second change >> myfile hg commit -m 'second change' #$ name: simple hg backout -m 'back out second change' tip cat myfile #$ name: simple.log #$ ignore: \s+200[78]-.* hg log --style compact #$ name: non-tip.clone cd .. hg clone -r1 myrepo non-tip-repo cd non-tip-repo #$ name: non-tip.backout echo third change >> myfile hg commit -m 'third change' hg backout --merge -m 'back out second change' 1 #$ name: non-tip.cat cat myfile #$ name: manual.clone cd .. hg clone -r1 myrepo newrepo cd newrepo #$ name: manual.backout echo third change >> myfile hg commit -m 'third change' hg backout -m 'back out second change' 1 #$ name: manual.log hg log --style compact #$ name: manual.parents hg parents #$ name: manual.heads hg heads #$ name: echo 'first change' > myfile #$ name: manual.cat cat myfile #$ name: manual.merge hg merge hg commit -m 'merged backout with previous tip' cat myfile #$ name: rm $HGMERGE