--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-revert.t Mon Aug 30 13:32:37 2010 +0900
@@ -0,0 +1,263 @@
+ $ 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
+
+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: No such file or directory
+
+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 095eacd0c0d7
+ $ touch d
+ $ hg add d
+ $ hg rm a
+ $ hg commit -m "second" -d "1000000 0"
+ $ 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
+ $ 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 -d '1000001 0' -m exe
+
+ $ chmod -x c
+ $ hg revert --all
+ reverting c
+
+should print executable
+
+ $ test -x c && echo executable
+ executable
+
+ $ cd ..
+
+
+issue 241
+
+ $ 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 the whole repo
+
+should succeed
+
+ $ hg revert --all -rtip
+ reverting a
+
+
+issue332
+
+ $ hg ci -A -m b -d '1000001 0'
+ 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
+ forgetting newdir/newfile
+ $ echo foobar > b/b
+ $ hg revert .
+ reverting b/b
+
+
+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
+ undeleting ignoreddir/removed
+ 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