tests/test-topic-change.t
changeset 3037 5c8d5f980f49
child 3038 103244e34a9c
equal deleted inserted replaced
3036:60896df503ba 3037:5c8d5f980f49
       
     1 Tests for changing and clearing topics
       
     2 ======================================
       
     3 
       
     4   $ . "$TESTDIR/testlib/topic_setup.sh"
       
     5   $ cat <<EOF >> $HGRCPATH
       
     6   > [experimental]
       
     7   > # disable the new graph style until we drop 3.7 support
       
     8   > graphstyle.missing = |
       
     9   > evolution=createmarkers, allowunstable
       
    10   > [phases]
       
    11   > publish=false
       
    12   > [alias]
       
    13   > glog = log -G -T "{rev}:{node|short} \{{topics}}\n{desc}  ({bookmarks})\n\n"
       
    14   > EOF
       
    15 
       
    16 About the glog output: {} contains the topic name and () will contain the bookmark
       
    17 
       
    18 Setting up a repo
       
    19 ----------------
       
    20 
       
    21   $ hg init topics
       
    22   $ cd topics
       
    23   $ for ch in {a..h}; do touch $ch; echo "foo" >> $ch; hg ci -Aqm "Added "$ch; done
       
    24 
       
    25   $ hg glog
       
    26   @  7:ec2426147f0e {}
       
    27   |  Added h  ()
       
    28   |
       
    29   o  6:87d6d6676308 {}
       
    30   |  Added g  ()
       
    31   |
       
    32   o  5:825660c69f0c {}
       
    33   |  Added f  ()
       
    34   |
       
    35   o  4:aa98ab95a928 {}
       
    36   |  Added e  ()
       
    37   |
       
    38   o  3:62615734edd5 {}
       
    39   |  Added d  ()
       
    40   |
       
    41   o  2:28ad74487de9 {}
       
    42   |  Added c  ()
       
    43   |
       
    44   o  1:29becc82797a {}
       
    45   |  Added b  ()
       
    46   |
       
    47   o  0:18d04c59bb5d {}
       
    48      Added a  ()
       
    49   
       
    50 
       
    51 Clearing topic from revision without topic
       
    52 
       
    53   $ hg topic -r . --clear
       
    54   changed topic on 0 changes
       
    55 
       
    56 Clearing current topic when no active topic is not error
       
    57 
       
    58   $ hg topic
       
    59   $ hg topic --clear
       
    60 
       
    61 Setting topics to all the revisions
       
    62 
       
    63   $ hg topic -r 0:: foo
       
    64   switching to topic foo
       
    65   changed topic on 8 changes
       
    66   $ hg glog
       
    67   @  15:05095f607171 {foo}
       
    68   |  Added h  ()
       
    69   |
       
    70   o  14:97505b53ab0d {foo}
       
    71   |  Added g  ()
       
    72   |
       
    73   o  13:75a8360fe626 {foo}
       
    74   |  Added f  ()
       
    75   |
       
    76   o  12:abcedffeae90 {foo}
       
    77   |  Added e  ()
       
    78   |
       
    79   o  11:1315a3808ed0 {foo}
       
    80   |  Added d  ()
       
    81   |
       
    82   o  10:1fa891977a22 {foo}
       
    83   |  Added c  ()
       
    84   |
       
    85   o  9:a53ba98dd6b8 {foo}
       
    86   |  Added b  ()
       
    87   |
       
    88   o  8:86a186070af2 {foo}
       
    89      Added a  ()
       
    90   
       
    91 
       
    92 Clearing the active topic using --clear
       
    93 
       
    94   $ hg topic
       
    95    * foo
       
    96   $ hg topic --clear
       
    97   $ hg topic
       
    98      foo
       
    99 Changing topics on some revisions (also testing issue 5441)
       
   100 
       
   101   $ hg topic -r 12:: bar
       
   102   switching to topic bar
       
   103   changed topic on 4 changes
       
   104   $ hg glog
       
   105   @  19:d7d36e193ea7 {bar}
       
   106   |  Added h  ()
       
   107   |
       
   108   o  18:e7b418d79a05 {bar}
       
   109   |  Added g  ()
       
   110   |
       
   111   o  17:82e0b14f4d9e {bar}
       
   112   |  Added f  ()
       
   113   |
       
   114   o  16:edc4a6b9ea60 {bar}
       
   115   |  Added e  ()
       
   116   |
       
   117   o  11:1315a3808ed0 {foo}
       
   118   |  Added d  ()
       
   119   |
       
   120   o  10:1fa891977a22 {foo}
       
   121   |  Added c  ()
       
   122   |
       
   123   o  9:a53ba98dd6b8 {foo}
       
   124   |  Added b  ()
       
   125   |
       
   126   o  8:86a186070af2 {foo}
       
   127      Added a  ()
       
   128   
       
   129 
       
   130 Changing topics without passing topic name and clear
       
   131 
       
   132   $ hg topic -r .
       
   133   abort: changing topic requires a topic name or --clear
       
   134   [255]
       
   135 
       
   136 Changing topic using --current flag
       
   137 
       
   138   $ hg topic foobar
       
   139   $ hg topic -r . --current
       
   140   active topic 'foobar' grew its first changeset
       
   141   changed topic on 1 changes
       
   142   $ hg glog -r .
       
   143   @  20:c2d6b7df5dcf {foobar}
       
   144   |  Added h  ()
       
   145   |
       
   146 
       
   147 Changing topic in between the stack
       
   148 
       
   149   $ hg topic -r 9::10 --current
       
   150   changed topic on 2 changes
       
   151   $ hg glog
       
   152   o  22:1b88140feefe {foobar}
       
   153   |  Added c  ()
       
   154   |
       
   155   o  21:c39cabfcbbf7 {foobar}
       
   156   |  Added b  ()
       
   157   |
       
   158   | @  20:c2d6b7df5dcf {foobar}
       
   159   | |  Added h  ()
       
   160   | |
       
   161   | o  18:e7b418d79a05 {bar}
       
   162   | |  Added g  ()
       
   163   | |
       
   164   | o  17:82e0b14f4d9e {bar}
       
   165   | |  Added f  ()
       
   166   | |
       
   167   | o  16:edc4a6b9ea60 {bar}
       
   168   | |  Added e  ()
       
   169   | |
       
   170   | o  11:1315a3808ed0 {foo}
       
   171   | |  Added d  ()
       
   172   | |
       
   173   | x  10:1fa891977a22 {foo}
       
   174   | |  Added c  ()
       
   175   | |
       
   176   | x  9:a53ba98dd6b8 {foo}
       
   177   |/   Added b  ()
       
   178   |
       
   179   o  8:86a186070af2 {foo}
       
   180      Added a  ()
       
   181   
       
   182   $ hg rebase -s 11 -d 22
       
   183   rebasing 11:1315a3808ed0 "Added d" (foo)
       
   184   switching to topic foo
       
   185   rebasing 16:edc4a6b9ea60 "Added e" (bar)
       
   186   switching to topic bar
       
   187   rebasing 17:82e0b14f4d9e "Added f" (bar)
       
   188   rebasing 18:e7b418d79a05 "Added g" (bar)
       
   189   rebasing 20:c2d6b7df5dcf "Added h" (foobar)
       
   190   switching to topic foobar
       
   191 
       
   192   $ hg glog
       
   193   @  27:a1a9465da59b {foobar}
       
   194   |  Added h  ()
       
   195   |
       
   196   o  26:7c76c271395f {bar}
       
   197   |  Added g  ()
       
   198   |
       
   199   o  25:7f26084dfaf1 {bar}
       
   200   |  Added f  ()
       
   201   |
       
   202   o  24:b1f05e9ba0b5 {bar}
       
   203   |  Added e  ()
       
   204   |
       
   205   o  23:f9869da2286e {foo}
       
   206   |  Added d  ()
       
   207   |
       
   208   o  22:1b88140feefe {foobar}
       
   209   |  Added c  ()
       
   210   |
       
   211   o  21:c39cabfcbbf7 {foobar}
       
   212   |  Added b  ()
       
   213   |
       
   214   o  8:86a186070af2 {foo}
       
   215      Added a  ()
       
   216   
       
   217 Amending a topic
       
   218 ----------------
       
   219 
       
   220 When the changeset has a topic and we have different active topic
       
   221 
       
   222   $ hg topic wat
       
   223   $ hg ci --amend
       
   224   active topic 'wat' grew its first changeset
       
   225   $ hg glog -r .
       
   226   @  28:61470c956807 {wat}
       
   227   |  Added h  ()
       
   228   |
       
   229 
       
   230 Clear the current topic and amending
       
   231 
       
   232   $ hg topic --clear
       
   233   $ hg ci --amend
       
   234   $ hg glog -r .
       
   235   @  29:b584fa49f42e {}
       
   236   |  Added h  ()
       
   237   |
       
   238 
       
   239 When the changeset does not has a topic but we have an active topic
       
   240 
       
   241   $ hg topic watwat
       
   242   marked working directory as topic: watwat
       
   243   $ hg ci --amend
       
   244   active topic 'watwat' grew its first changeset
       
   245   $ hg glog -r .
       
   246   @  30:a24c31c35013 {watwat}
       
   247   |  Added h  ()
       
   248   |
       
   249 
       
   250 Testing changing topics on public changeset
       
   251 -------------------------------------------
       
   252 
       
   253   $ hg phase -r 8 -p
       
   254 
       
   255 Clearing the topic
       
   256 
       
   257   $ hg topic -r 8 --clear
       
   258   abort: can't change topic of a public change
       
   259   [255]
       
   260 
       
   261 Changing the topic
       
   262 
       
   263   $ hg topic -r 8 foobarboo
       
   264   abort: can't change topic of a public change
       
   265   [255]
       
   266 
       
   267 Testing the bookmark movement
       
   268 -----------------------------
       
   269 
       
   270   $ hg bookmark book
       
   271   $ hg glog
       
   272   @  30:a24c31c35013 {watwat}
       
   273   |  Added h  (book)
       
   274   |
       
   275   o  26:7c76c271395f {bar}
       
   276   |  Added g  ()
       
   277   |
       
   278   o  25:7f26084dfaf1 {bar}
       
   279   |  Added f  ()
       
   280   |
       
   281   o  24:b1f05e9ba0b5 {bar}
       
   282   |  Added e  ()
       
   283   |
       
   284   o  23:f9869da2286e {foo}
       
   285   |  Added d  ()
       
   286   |
       
   287   o  22:1b88140feefe {foobar}
       
   288   |  Added c  ()
       
   289   |
       
   290   o  21:c39cabfcbbf7 {foobar}
       
   291   |  Added b  ()
       
   292   |
       
   293   o  8:86a186070af2 {}
       
   294      Added a  ()
       
   295   
       
   296 On clearing the topic
       
   297 XXX: the bookmark must have moved
       
   298 
       
   299   $ hg topic -r . --clear
       
   300   clearing empty topic "watwat"
       
   301   active topic 'watwat' is now empty
       
   302   changed topic on 1 changes
       
   303 
       
   304   $ hg glog
       
   305   @  31:c48d6d71b2d9 {}
       
   306   |  Added h  ()
       
   307   |
       
   308   | x  30:a24c31c35013 {watwat}
       
   309   |/   Added h  (book)
       
   310   |
       
   311   o  26:7c76c271395f {bar}
       
   312   |  Added g  ()
       
   313   |
       
   314   o  25:7f26084dfaf1 {bar}
       
   315   |  Added f  ()
       
   316   |
       
   317   o  24:b1f05e9ba0b5 {bar}
       
   318   |  Added e  ()
       
   319   |
       
   320   o  23:f9869da2286e {foo}
       
   321   |  Added d  ()
       
   322   |
       
   323   o  22:1b88140feefe {foobar}
       
   324   |  Added c  ()
       
   325   |
       
   326   o  21:c39cabfcbbf7 {foobar}
       
   327   |  Added b  ()
       
   328   |
       
   329   o  8:86a186070af2 {}
       
   330      Added a  ()
       
   331   
       
   332 
       
   333 On changing the topic
       
   334 XXX: the bookmark must have moved
       
   335 
       
   336   $ hg bookmark bookboo
       
   337   $ hg topic -r . movebook
       
   338   switching to topic movebook
       
   339   changed topic on 1 changes
       
   340   $ hg glog
       
   341   @  32:1b83d11095b9 {movebook}
       
   342   |  Added h  ()
       
   343   |
       
   344   | x  31:c48d6d71b2d9 {}
       
   345   |/   Added h  (bookboo)
       
   346   |
       
   347   | x  30:a24c31c35013 {watwat}
       
   348   |/   Added h  (book)
       
   349   |
       
   350   o  26:7c76c271395f {bar}
       
   351   |  Added g  ()
       
   352   |
       
   353   o  25:7f26084dfaf1 {bar}
       
   354   |  Added f  ()
       
   355   |
       
   356   o  24:b1f05e9ba0b5 {bar}
       
   357   |  Added e  ()
       
   358   |
       
   359   o  23:f9869da2286e {foo}
       
   360   |  Added d  ()
       
   361   |
       
   362   o  22:1b88140feefe {foobar}
       
   363   |  Added c  ()
       
   364   |
       
   365   o  21:c39cabfcbbf7 {foobar}
       
   366   |  Added b  ()
       
   367   |
       
   368   o  8:86a186070af2 {}
       
   369      Added a  ()
       
   370