view tests/test-bheads @ 11097:9651fa5a3cbf

context: add a changectx.diff() convenience function With this function, extracting diffs becomes trivial: repo = hg.repository(ui.ui(), path=root) ctx = repo['tip'] for out in ctx.diff(): print out
author Steve Borho <steve@borho.org>
date Tue, 04 May 2010 20:12:58 -0500
parents fd511e9eeea6
children 7d780c04f074
line wrap: on
line source

#!/bin/sh

heads()
{
    hg heads --template '{rev}: {desc|firstline|strip} ({branches})\n' "$@"
}

hg init a
cd a
echo 'root' >root
hg add root
hg commit -m "Adding root node"
heads
echo '-------'
heads .

echo '======='
echo 'a' >a
hg add a
hg branch a
hg commit -m "Adding a branch"
heads
echo '-------'
heads .

echo '======='
hg update -C 0
echo 'b' >b
hg add b
hg branch b
hg commit -m "Adding b branch"
heads
echo '-------'
heads .

echo '======='
echo 'bh1' >bh1
hg add bh1
hg commit -m "Adding b branch head 1"
heads
echo '-------'
heads .

echo '======='
hg update -C 2
echo 'bh2' >bh2
hg add bh2
hg commit -m "Adding b branch head 2"
heads
echo '-------'
heads .

echo '======='
hg update -C 2
echo 'bh3' >bh3
hg add bh3
hg commit -m "Adding b branch head 3"
heads
echo '-------'
heads .

echo '======='
hg merge 4
hg commit -m "Merging b branch head 2 and b branch head 3"
heads
echo '-------'
heads .

echo '======='
echo 'c' >c
hg add c
hg branch c
hg commit -m "Adding c branch"
heads
echo '-------'
heads .

echo '======='
heads -r 3 .
echo $?
echo '-------'
heads -r 2 .
echo $?
echo '-------'
hg update -C 4
echo $?
echo '-------'
heads -r 3 .
echo $?
echo '-------'
heads -r 2 .
echo $?
echo '-------'
heads -r 7 .
echo $?

echo '======='
for i in 0 1 2 3 4 5 6 7; do
    hg update -C "$i"
    heads
    echo '-------'
    heads .
    echo '-------'
done

echo '======='
for i in a b c z; do
    heads "$i"
    echo '-------'
done

echo '======='
heads 0 1 2 3 4 5 6 7

echo '% topological heads'
heads -t