view tests/test-revert @ 7305:c21d236ca897

hgweb: descend empty directories in web view When a manifest has a series of directories with nothing in them but a single directory, displaying the entire chain of empty directories allows for navigation down to the first non-empty directory with a single click. Because Java links package hierarchy to directory hierarchy, and because Java conventions include at least three empty directories at the top of this hierarchy, descending down empty directories is very common in Java web tools.
author Ry4an Brase <ry4an-hg@ry4an.org>
date Mon, 03 Nov 2008 10:20:28 +0100
parents 81e20e01d465
children
line wrap: on
line source

#!/bin/sh

hg init repo
cd repo
echo 123 > a
echo 123 > c
echo 123 > e
hg add a c e
hg commit -m "first" -d "1000000 0" a c e
echo 123 > b
echo %% should show b unknown
hg status
echo 12 > c
echo %% should show b unknown and c modified
hg status
hg add b
echo %% should show b added and c modified
hg status
hg rm a
echo %% should show a removed, b added and c modified
hg status
hg revert a
echo %% should show b added, copy saved, and c modified
hg status
hg revert b
echo %% should show b unknown, and c modified
hg status
hg revert --no-backup c
echo %% should show unknown: b
hg status
hg add b
echo %% should show b added
hg status b
rm b
echo %% should show b deleted
hg status b
hg revert -v b
echo %% should not find b
hg status b
echo %% should show a c e
ls
echo %% should verbosely save backup to e.orig
echo z > e
hg revert --all -v
echo %% should say no changes needed
hg revert a
echo %% should say file not managed
echo q > q
hg revert q
rm q
echo %% should say file not found
hg revert notfound
touch d
hg add d
hg rm a
hg commit -m "second" -d "1000000 0"
echo z > z
hg add z
hg st
echo %% should add a, remove d, forget z
hg revert --all -r0
echo %% should forget a, undelete d
hg revert --all -rtip
rm a *.orig
echo %% should silently add a
hg revert -r0 a
hg st a
hg rm d
hg st d
echo %% should silently keep d removed
hg revert -r0 d
hg st d

hg update -C
chmod +x c
hg revert --all
echo %% should print non-executable
test -x c || echo non-executable

chmod +x c
hg commit -d '1000001 0' -m exe

chmod -x c
hg revert --all
echo %% should print executable
test -x c && echo executable

cd ..

echo %% issue 241
hg init a
cd a
echo a >> a
hg commit -A -d '1 0' -m a
echo a >> a
hg commit -d '2 0' -m a
hg update 0
mkdir b
echo b > b/b

echo % should fail - no arguments
hg revert -rtip

echo % should succeed
hg revert --all -rtip

echo %% issue332
hg ci -A -m b -d '1000001 0'
echo foobar > b/b
mkdir newdir
echo foo > newdir/newfile
hg add newdir/newfile
hg revert b newdir
echo foobar > b/b
hg revert .

echo % reverting a rename target should revert the source
hg mv a newa
hg revert newa
hg st a newa

cd ..

hg init ignored
cd ignored
echo '^ignored$' > .hgignore
echo '^ignoreddir$' >> .hgignore
echo '^removed$' >> .hgignore

mkdir ignoreddir
touch ignoreddir/file
touch ignoreddir/removed
touch ignored
touch removed
echo '%% 4 ignored files (we will add/commit everything)'
hg st -A -X .hgignore
hg ci -qAm 'add files' ignored ignoreddir/file ignoreddir/removed removed

echo >> ignored
echo >> ignoreddir/file
hg rm removed ignoreddir/removed
echo '%% should revert ignored* and undelete *removed'
hg revert -a --no-backup
hg st -mardi

hg up -qC
echo >> ignored
hg rm removed
echo %% should silently revert the named files
hg revert --no-backup ignored removed
hg st -mardi