tests/test-commit
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Fri, 08 Jun 2007 23:49:12 -0300
changeset 4525 78b6add1f966
parent 4253 9e3e975258a9
permissions -rwxr-xr-x
Add dirstate.pathto and localrepo.pathto. Every time util.pathto is called, we have to pass the repo root and the repo cwd. dirstate.pathto is a simple convenience function that knows about the root and the cwd arguments. It's still possible to pass the cwd as an optimization. localrepo.pathto is a convenience function that just calls dirstate.pathto, just like localrepo.getcwd. dirstate.pathto becomes a single point that converts most (all?) paths from the internal representation to some OS-specific relative path for display purposes.

#!/bin/sh

cleanpath()
{
    sed -e "s:/.*\(/test/.*\):...\1:"
}

echo % commit date test
hg init test
cd test
echo foo > foo
hg add foo
hg commit -d '0 0' -m commit-1
echo foo >> foo
hg commit -d '1 4444444' -m commit-3
hg commit -d '1	15.1' -m commit-4
hg commit -d 'foo bar' -m commit-5
hg commit -d ' 1 4444' -m commit-6
hg commit -d '111111111111 0' -m commit-7

echo % partial commit test
echo bar > bar
hg add bar
rm bar
hg commit -d "1000000 0" -m commit-8 2>&1 | cleanpath

hg -q revert -a --no-backup

mkdir dir
echo boo > dir/file
hg add
hg -v commit -d '0 0' -m commit-9 dir

echo > dir.file
hg add
hg commit -d '0 0' -m commit-10 dir dir.file 2>&1 | cleanpath

echo >> dir/file
mkdir bleh
mkdir dir2
cd bleh
hg commit -d '0 0' -m commit-11 . 2>&1 | cleanpath
hg commit -d '0 0' -m commit-12 ../dir ../dir2 2>&1 | cleanpath
hg -v commit -d '0 0' -m commit-13 ../dir
cd ..

hg commit -d '0 0' -m commit-14 does-not-exist 2>&1 | cleanpath
ln -s foo baz
hg commit -d '0 0' -m commit-15 baz 2>&1 | cleanpath
touch quux
hg commit -d '0 0' -m commit-16 quux 2>&1 | cleanpath
echo >> dir/file
hg -v commit -d '0 0' -m commit-17 dir/file
cd ..

echo % partial subdir commit test
hg init test2
cd test2
mkdir foo
echo foo > foo/foo
mkdir bar
echo bar > bar/bar
hg add
hg ci -d '1000000 0' -u test -m commit-subdir-1 foo
hg ci -d '1000001 0' -u test -m commit-subdir-2 bar
echo % subdir log 1
hg log -v foo
echo % subdir log 2
hg log -v bar
echo % full log
hg log -v
cd ..

echo % dot and subdir commit test
hg init test3
cd test3
mkdir foo
echo foo content > foo/plain-file
hg add foo/plain-file
hg ci -d '1000000 0' -u test -m commit-foo-subdir foo
echo modified foo content > foo/plain-file
hg ci -d '2000000 0' -u test -m commit-foo-dot .
echo % full log
hg log -v
echo % subdir log
cd foo
hg log .
cd ..
cd ..

exit 0