diff options
author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
commit | a498da43c7fdb9f24b73680c02a4a3588cc62d9a (patch) | |
tree | daf8119dae1749b5165b68033a1b23a7375ce9ce /tests/test-revert.t | |
download | mercurial-tarball-a498da43c7fdb9f24b73680c02a4a3588cc62d9a.tar.gz |
Tarball conversion
Diffstat (limited to 'tests/test-revert.t')
-rw-r--r-- | tests/test-revert.t | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/tests/test-revert.t b/tests/test-revert.t new file mode 100644 index 0000000..c2b085f --- /dev/null +++ b/tests/test-revert.t @@ -0,0 +1,278 @@ + $ hg init repo + $ cd repo + $ echo 123 > a + $ echo 123 > c + $ echo 123 > e + $ hg add a c e + $ hg commit -m "first" a c e + +nothing changed + + $ hg revert + abort: no files or directories specified + (use --all to revert all files) + [255] + $ hg revert --all + + $ echo 123 > b + +should show b unknown + + $ hg status + ? b + $ echo 12 > c + +should show b unknown and c modified + + $ hg status + M c + ? b + $ hg add b + +should show b added and c modified + + $ hg status + M c + A b + $ hg rm a + +should show a removed, b added and c modified + + $ hg status + M c + A b + R a + $ hg revert a + +should show b added, copy saved, and c modified + + $ hg status + M c + A b + $ hg revert b + +should show b unknown, and c modified + + $ hg status + M c + ? b + $ hg revert --no-backup c + +should show unknown: b + + $ hg status + ? b + $ hg add b + +should show b added + + $ hg status b + A b + $ rm b + +should show b deleted + + $ hg status b + ! b + $ hg revert -v b + forgetting b + +should not find b + + $ hg status b + b: * (glob) + +should show a c e + + $ ls + a + c + e + +should verbosely save backup to e.orig + + $ echo z > e + $ hg revert --all -v + saving current version of e as e.orig + reverting e + +should say no changes needed + + $ hg revert a + no changes needed to a + +should say file not managed + + $ echo q > q + $ hg revert q + file not managed: q + $ rm q + +should say file not found + + $ hg revert notfound + notfound: no such file in rev 334a9e57682c + $ touch d + $ hg add d + $ hg rm a + $ hg commit -m "second" + $ echo z > z + $ hg add z + $ hg st + A z + ? e.orig + +should add a, remove d, forget z + + $ hg revert --all -r0 + adding a + removing d + forgetting z + +should forget a, undelete d + + $ hg revert --all -rtip + forgetting a + undeleting d + $ rm a *.orig + +should silently add a + + $ hg revert -r0 a + $ hg st a + A a + $ hg rm d + $ hg st d + R d + +should silently keep d removed + + $ hg revert -r0 d + $ hg st d + R d + + $ hg update -C + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved +#if execbit + $ chmod +x c + $ hg revert --all + reverting c + +should print non-executable + + $ test -x c || echo non-executable + non-executable + + $ chmod +x c + $ hg commit -m exe + + $ chmod -x c + $ hg revert --all + reverting c + +should print executable + + $ test -x c && echo executable + executable +#endif + + $ cd .. + + +Issue241: update and revert produces inconsistent repositories + + $ hg init a + $ cd a + $ echo a >> a + $ hg commit -A -d '1 0' -m a + adding a + $ echo a >> a + $ hg commit -d '2 0' -m a + $ hg update 0 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ mkdir b + $ echo b > b/b + +should fail - no arguments + + $ hg revert -rtip + abort: no files or directories specified + (use --all to revert all files, or 'hg update 1' to update) + [255] + +should succeed + + $ hg revert --all -rtip + reverting a + + +Issue332: confusing message when reverting directory + + $ hg ci -A -m b + adding b/b + created new head + $ echo foobar > b/b + $ mkdir newdir + $ echo foo > newdir/newfile + $ hg add newdir/newfile + $ hg revert b newdir + reverting b/b (glob) + forgetting newdir/newfile (glob) + $ echo foobar > b/b + $ hg revert . + reverting b/b (glob) + + +reverting a rename target should revert the source + + $ hg mv a newa + $ hg revert newa + $ hg st a newa + ? 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 + +4 ignored files (we will add/commit everything) + + $ hg st -A -X .hgignore + I ignored + I ignoreddir/file + I ignoreddir/removed + I removed + $ hg ci -qAm 'add files' ignored ignoreddir/file ignoreddir/removed removed + + $ echo >> ignored + $ echo >> ignoreddir/file + $ hg rm removed ignoreddir/removed + +should revert ignored* and undelete *removed + + $ hg revert -a --no-backup + reverting ignored + reverting ignoreddir/file (glob) + undeleting ignoreddir/removed (glob) + undeleting removed + $ hg st -mardi + + $ hg up -qC + $ echo >> ignored + $ hg rm removed + +should silently revert the named files + + $ hg revert --no-backup ignored removed + $ hg st -mardi + + $ cd .. |