tests/test-revert.t
changeset 12106 969176bec217
parent 6110 81e20e01d465
child 12156 4c94b6d0fb1c
equal deleted inserted replaced
12105:6f58430dfdd0 12106:969176bec217
       
     1   $ hg init repo
       
     2   $ cd repo
       
     3   $ echo 123 > a
       
     4   $ echo 123 > c
       
     5   $ echo 123 > e
       
     6   $ hg add a c e
       
     7   $ hg commit -m "first" -d "1000000 0" a c e
       
     8   $ echo 123 > b
       
     9 
       
    10 should show b unknown
       
    11 
       
    12   $ hg status
       
    13   ? b
       
    14   $ echo 12 > c
       
    15 
       
    16 should show b unknown and c modified
       
    17 
       
    18   $ hg status
       
    19   M c
       
    20   ? b
       
    21   $ hg add b
       
    22 
       
    23 should show b added and c modified
       
    24 
       
    25   $ hg status
       
    26   M c
       
    27   A b
       
    28   $ hg rm a
       
    29 
       
    30 should show a removed, b added and c modified
       
    31 
       
    32   $ hg status
       
    33   M c
       
    34   A b
       
    35   R a
       
    36   $ hg revert a
       
    37 
       
    38 should show b added, copy saved, and c modified
       
    39 
       
    40   $ hg status
       
    41   M c
       
    42   A b
       
    43   $ hg revert b
       
    44 
       
    45 should show b unknown, and c modified
       
    46 
       
    47   $ hg status
       
    48   M c
       
    49   ? b
       
    50   $ hg revert --no-backup c
       
    51 
       
    52 should show unknown: b
       
    53 
       
    54   $ hg status
       
    55   ? b
       
    56   $ hg add b
       
    57 
       
    58 should show b added
       
    59 
       
    60   $ hg status b
       
    61   A b
       
    62   $ rm b
       
    63 
       
    64 should show b deleted
       
    65 
       
    66   $ hg status b
       
    67   ! b
       
    68   $ hg revert -v b
       
    69   forgetting b
       
    70 
       
    71 should not find b
       
    72 
       
    73   $ hg status b
       
    74   b: No such file or directory
       
    75 
       
    76 should show a c e
       
    77 
       
    78   $ ls
       
    79   a
       
    80   c
       
    81   e
       
    82 
       
    83 should verbosely save backup to e.orig
       
    84 
       
    85   $ echo z > e
       
    86   $ hg revert --all -v
       
    87   saving current version of e as e.orig
       
    88   reverting e
       
    89 
       
    90 should say no changes needed
       
    91 
       
    92   $ hg revert a
       
    93   no changes needed to a
       
    94 
       
    95 should say file not managed
       
    96 
       
    97   $ echo q > q
       
    98   $ hg revert q
       
    99   file not managed: q
       
   100   $ rm q
       
   101 
       
   102 should say file not found
       
   103 
       
   104   $ hg revert notfound
       
   105   notfound: no such file in rev 095eacd0c0d7
       
   106   $ touch d
       
   107   $ hg add d
       
   108   $ hg rm a
       
   109   $ hg commit -m "second" -d "1000000 0"
       
   110   $ echo z > z
       
   111   $ hg add z
       
   112   $ hg st
       
   113   A z
       
   114   ? e.orig
       
   115 
       
   116 should add a, remove d, forget z
       
   117 
       
   118   $ hg revert --all -r0
       
   119   adding a
       
   120   removing d
       
   121   forgetting z
       
   122 
       
   123 should forget a, undelete d
       
   124 
       
   125   $ hg revert --all -rtip
       
   126   forgetting a
       
   127   undeleting d
       
   128   $ rm a *.orig
       
   129 
       
   130 should silently add a
       
   131 
       
   132   $ hg revert -r0 a
       
   133   $ hg st a
       
   134   A a
       
   135   $ hg rm d
       
   136   $ hg st d
       
   137   R d
       
   138 
       
   139 should silently keep d removed
       
   140 
       
   141   $ hg revert -r0 d
       
   142   $ hg st d
       
   143   R d
       
   144 
       
   145   $ hg update -C
       
   146   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   147   $ chmod +x c
       
   148   $ hg revert --all
       
   149   reverting c
       
   150 
       
   151 should print non-executable
       
   152 
       
   153   $ test -x c || echo non-executable
       
   154   non-executable
       
   155 
       
   156   $ chmod +x c
       
   157   $ hg commit -d '1000001 0' -m exe
       
   158 
       
   159   $ chmod -x c
       
   160   $ hg revert --all
       
   161   reverting c
       
   162 
       
   163 should print executable
       
   164 
       
   165   $ test -x c && echo executable
       
   166   executable
       
   167 
       
   168   $ cd ..
       
   169 
       
   170 
       
   171 issue 241
       
   172 
       
   173   $ hg init a
       
   174   $ cd a
       
   175   $ echo a >> a
       
   176   $ hg commit -A -d '1 0' -m a
       
   177   adding a
       
   178   $ echo a >> a
       
   179   $ hg commit -d '2 0' -m a
       
   180   $ hg update 0
       
   181   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   182   $ mkdir b
       
   183   $ echo b > b/b
       
   184 
       
   185 should fail - no arguments
       
   186 
       
   187   $ hg revert -rtip
       
   188   abort: no files or directories specified; use --all to revert the whole repo
       
   189 
       
   190 should succeed
       
   191 
       
   192   $ hg revert --all -rtip
       
   193   reverting a
       
   194 
       
   195 
       
   196 issue332
       
   197 
       
   198   $ hg ci -A -m b -d '1000001 0'
       
   199   adding b/b
       
   200   created new head
       
   201   $ echo foobar > b/b
       
   202   $ mkdir newdir
       
   203   $ echo foo > newdir/newfile
       
   204   $ hg add newdir/newfile
       
   205   $ hg revert b newdir
       
   206   reverting b/b
       
   207   forgetting newdir/newfile
       
   208   $ echo foobar > b/b
       
   209   $ hg revert .
       
   210   reverting b/b
       
   211 
       
   212 
       
   213 reverting a rename target should revert the source
       
   214 
       
   215   $ hg mv a newa
       
   216   $ hg revert newa
       
   217   $ hg st a newa
       
   218   ? newa
       
   219 
       
   220   $ cd ..
       
   221 
       
   222   $ hg init ignored
       
   223   $ cd ignored
       
   224   $ echo '^ignored$' > .hgignore
       
   225   $ echo '^ignoreddir$' >> .hgignore
       
   226   $ echo '^removed$' >> .hgignore
       
   227 
       
   228   $ mkdir ignoreddir
       
   229   $ touch ignoreddir/file
       
   230   $ touch ignoreddir/removed
       
   231   $ touch ignored
       
   232   $ touch removed
       
   233 
       
   234 4 ignored files (we will add/commit everything)
       
   235 
       
   236   $ hg st -A -X .hgignore
       
   237   I ignored
       
   238   I ignoreddir/file
       
   239   I ignoreddir/removed
       
   240   I removed
       
   241   $ hg ci -qAm 'add files' ignored ignoreddir/file ignoreddir/removed removed
       
   242 
       
   243   $ echo >> ignored
       
   244   $ echo >> ignoreddir/file
       
   245   $ hg rm removed ignoreddir/removed
       
   246 
       
   247 should revert ignored* and undelete *removed
       
   248 
       
   249   $ hg revert -a --no-backup
       
   250   reverting ignored
       
   251   reverting ignoreddir/file
       
   252   undeleting ignoreddir/removed
       
   253   undeleting removed
       
   254   $ hg st -mardi
       
   255 
       
   256   $ hg up -qC
       
   257   $ echo >> ignored
       
   258   $ hg rm removed
       
   259 
       
   260 should silently revert the named files
       
   261 
       
   262   $ hg revert --no-backup ignored removed
       
   263   $ hg st -mardi