|
|
#!/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 added
|
|
|
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
|
|
|
|