tests/test-uncommit.t
changeset 312 a7b5989d1d92
child 313 47d10459fa24
equal deleted inserted replaced
311:5eecfda0a5c7 312:a7b5989d1d92
       
     1   $ cat >> $HGRCPATH <<EOF
       
     2   > [extensions]
       
     3   > hgext.rebase=
       
     4   > hgext.graphlog=
       
     5   > EOF
       
     6   $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH
       
     7   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
       
     8 
       
     9   $ glog() {
       
    10   >   hg glog --template '{rev}:{node|short}@{branch}({obsolete}/{phase}) {desc|firstline}\n' "$@"
       
    11   > }
       
    12 
       
    13   $ hg init repo
       
    14   $ cd repo
       
    15 
       
    16 Cannot uncommit null changeset
       
    17 
       
    18   $ hg uncommit
       
    19   abort: cannot rewrite immutable changeset
       
    20   [255]
       
    21 
       
    22 Cannot uncommit public changeset
       
    23 
       
    24   $ echo a > a
       
    25   $ hg ci -Am adda a
       
    26   $ hg phase --public .
       
    27   $ hg uncommit
       
    28   abort: cannot rewrite immutable changeset
       
    29   [255]
       
    30   $ hg phase --force --draft .
       
    31 
       
    32 Cannot uncommit merge
       
    33 
       
    34   $ hg up -q null
       
    35   $ echo b > b
       
    36   $ echo c > c
       
    37   $ echo d > d
       
    38   $ echo f > f
       
    39   $ echo g > g
       
    40   $ echo j > j
       
    41   $ echo m > m
       
    42   $ echo n > n
       
    43   $ echo o > o
       
    44   $ hg ci -Am addmore
       
    45   adding b
       
    46   adding c
       
    47   adding d
       
    48   adding f
       
    49   adding g
       
    50   adding j
       
    51   adding m
       
    52   adding n
       
    53   adding o
       
    54   created new head
       
    55   $ hg merge
       
    56   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    57   (branch merge, don't forget to commit)
       
    58   $ hg uncommit
       
    59   abort: cannot uncommit while merging
       
    60   [255]
       
    61   $ hg ci -m merge
       
    62   $ hg uncommit
       
    63   abort: cannot uncommit merge changeset
       
    64   [255]
       
    65 
       
    66 Prepare complicated changeset
       
    67 
       
    68   $ hg branch bar
       
    69   marked working directory as branch bar
       
    70   (branches are permanent and global, did you want a bookmark?)
       
    71   $ hg cp a aa
       
    72   $ echo b >> b
       
    73   $ hg rm c
       
    74   $ echo d >> d
       
    75   $ echo e > e
       
    76   $ hg mv f ff
       
    77   $ hg mv g h
       
    78   $ echo j >> j
       
    79   $ echo k > k
       
    80   $ echo l > l
       
    81   $ hg rm m
       
    82   $ hg rm n
       
    83   $ echo o >> o
       
    84   $ hg ci -Am touncommit
       
    85   adding e
       
    86   adding k
       
    87   adding l
       
    88   $ hg st --copies --change .
       
    89   M b
       
    90   M d
       
    91   M j
       
    92   M o
       
    93   A aa
       
    94     a
       
    95   A e
       
    96   A ff
       
    97     f
       
    98   A h
       
    99     g
       
   100   A k
       
   101   A l
       
   102   R c
       
   103   R f
       
   104   R g
       
   105   R m
       
   106   R n
       
   107   $ hg man -r .
       
   108   a
       
   109   aa
       
   110   b
       
   111   d
       
   112   e
       
   113   ff
       
   114   h
       
   115   j
       
   116   k
       
   117   l
       
   118   o
       
   119 
       
   120 Prepare complicated working directory
       
   121 
       
   122   $ hg branch foo
       
   123   marked working directory as branch foo
       
   124   (branches are permanent and global, did you want a bookmark?)
       
   125   $ hg mv ff f
       
   126   $ hg mv h i
       
   127   $ hg rm j
       
   128   $ hg rm k
       
   129   $ echo l >> l
       
   130   $ echo m > m
       
   131   $ echo o > o
       
   132 
       
   133 Test uncommit without argument, should be a no-op
       
   134 
       
   135   $ hg uncommit
       
   136   abort: nothing to uncommit
       
   137   [255]
       
   138 
       
   139 Test no matches
       
   140 
       
   141   $ hg uncommit --include nothere
       
   142   abort: nothing to uncommit
       
   143   [255]
       
   144 
       
   145 Enjoy uncommit
       
   146 
       
   147   $ hg uncommit aa b c f ff g h j k l m o
       
   148   $ hg branch
       
   149   foo
       
   150   $ hg st --copies
       
   151   M b
       
   152   A aa
       
   153     a
       
   154   A i
       
   155     g
       
   156   A l
       
   157   R c
       
   158   R g
       
   159   R j
       
   160   R m
       
   161   $ cat aa
       
   162   a
       
   163   $ cat b
       
   164   b
       
   165   b
       
   166   $ cat l
       
   167   l
       
   168   l
       
   169   $ cat m
       
   170   m
       
   171   $ test -f c && echo 'error: c was removed!'
       
   172   [1]
       
   173   $ test -f j && echo 'error: j was removed!'
       
   174   [1]
       
   175   $ test -f k && echo 'error: k was removed!'
       
   176   [1]
       
   177   $ hg st --copies --change .
       
   178   M d
       
   179   A e
       
   180   R n
       
   181   $ hg man -r .
       
   182   a
       
   183   b
       
   184   c
       
   185   d
       
   186   e
       
   187   f
       
   188   g
       
   189   j
       
   190   m
       
   191   o
       
   192   $ hg cat -r . d
       
   193   d
       
   194   d
       
   195   $ hg cat -r . e
       
   196   e
       
   197   $ glog --hidden
       
   198   @  4:e8db4aa611f6@bar(stable/draft) touncommit
       
   199   |
       
   200   | o  3:5eb72dbe0cb4@bar(extinct/secret) touncommit
       
   201   |/
       
   202   o    2:f63b90038565@default(stable/draft) merge
       
   203   |\
       
   204   | o  1:f15c744d48e8@default(stable/draft) addmore
       
   205   |
       
   206   o  0:07f494440405@default(stable/draft) adda
       
   207   
       
   208   $ hg debugsuccessors
       
   209   5eb72dbe0cb4 e8db4aa611f6
       
   210 
       
   211 Test phase is preserved, no local changes
       
   212 
       
   213   $ hg up -C 3
       
   214   8 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   215   Working directory parent is obsolete
       
   216   $ hg --config extensions.purge= purge
       
   217   $ hg uncommit -I 'set:added() and e'
       
   218   $ hg st --copies
       
   219   A e
       
   220   $ hg st --copies --change .
       
   221   M b
       
   222   M d
       
   223   M j
       
   224   M o
       
   225   A aa
       
   226   A ff
       
   227     f
       
   228   A h
       
   229     g
       
   230   A k
       
   231   A l
       
   232   R c
       
   233   R f
       
   234   R g
       
   235   R m
       
   236   R n
       
   237   $ glog --hidden
       
   238   @  5:c706fe2c12f8@bar(stable/secret) touncommit
       
   239   |
       
   240   | o  4:e8db4aa611f6@bar(stable/draft) touncommit
       
   241   |/
       
   242   | o  3:5eb72dbe0cb4@bar(extinct/secret) touncommit
       
   243   |/
       
   244   o    2:f63b90038565@default(stable/draft) merge
       
   245   |\
       
   246   | o  1:f15c744d48e8@default(stable/draft) addmore
       
   247   |
       
   248   o  0:07f494440405@default(stable/draft) adda
       
   249   
       
   250   $ hg debugsuccessors
       
   251   5eb72dbe0cb4 c706fe2c12f8
       
   252   5eb72dbe0cb4 e8db4aa611f6