tests/test-topic-dest.t
branchmercurial-3.9
changeset 2801 49494d0155b7
parent 2800 13c4d518327a
parent 2702 167567795f6c
child 2802 41c9a4df628e
child 2811 35d053d7bd87
equal deleted inserted replaced
2800:13c4d518327a 2801:49494d0155b7
     1   $ . "$TESTDIR/testlib/topic_setup.sh"
       
     2 
       
     3   $ hg init jungle
       
     4   $ cd jungle
       
     5   $ cat <<EOF >> .hg/hgrc
       
     6   > [extensions]
       
     7   > rebase=
       
     8   > histedit=
       
     9   > [phases]
       
    10   > publish=false
       
    11   > EOF
       
    12   $ cat <<EOF >> $HGRCPATH
       
    13   > [ui]
       
    14   > logtemplate = '{rev} ({topics}) {desc}\n'
       
    15   > EOF
       
    16 
       
    17   $ for x in alpha beta gamma delta ; do
       
    18   >   echo file $x >> $x
       
    19   >   hg add $x
       
    20   >   hg ci -m "c_$x"
       
    21   > done
       
    22 
       
    23 Test NGTip feature
       
    24 ==================
       
    25 
       
    26 Simple linear case
       
    27 
       
    28   $ echo babar >> jungle
       
    29   $ hg add jungle
       
    30   $ hg ci -t elephant -m babar
       
    31 
       
    32   $ hg log -G
       
    33   @  4 (elephant) babar
       
    34   |
       
    35   o  3 () c_delta
       
    36   |
       
    37   o  2 () c_gamma
       
    38   |
       
    39   o  1 () c_beta
       
    40   |
       
    41   o  0 () c_alpha
       
    42   
       
    43   $ hg log -r 'ngtip(.)'
       
    44   3 () c_delta
       
    45   $ hg log -r 'default'
       
    46   3 () c_delta
       
    47 
       
    48 
       
    49 multiple heads with topic
       
    50 
       
    51   $ hg up "desc('c_beta')"
       
    52   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
    53   $ echo zephir >> jungle
       
    54   $ hg add jungle
       
    55   $ hg ci -t monkey -m zephir
       
    56   $ hg log -G
       
    57   @  5 (monkey) zephir
       
    58   |
       
    59   | o  4 (elephant) babar
       
    60   | |
       
    61   | o  3 () c_delta
       
    62   | |
       
    63   | o  2 () c_gamma
       
    64   |/
       
    65   o  1 () c_beta
       
    66   |
       
    67   o  0 () c_alpha
       
    68   
       
    69   $ hg log -r 'ngtip(.)'
       
    70   3 () c_delta
       
    71   $ hg log -r 'default'
       
    72   3 () c_delta
       
    73 
       
    74 one of the head is a valid tip
       
    75 
       
    76   $ hg up "desc('c_delta')"
       
    77   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
    78   $ echo epsilon >> epsilon
       
    79   $ hg add epsilon
       
    80   $ hg ci -m "c_epsilon"
       
    81   $ hg log -G
       
    82   @  6 () c_epsilon
       
    83   |
       
    84   | o  5 (monkey) zephir
       
    85   | |
       
    86   +---o  4 (elephant) babar
       
    87   | |
       
    88   o |  3 () c_delta
       
    89   | |
       
    90   o |  2 () c_gamma
       
    91   |/
       
    92   o  1 () c_beta
       
    93   |
       
    94   o  0 () c_alpha
       
    95   
       
    96   $ hg log -r 'ngtip(.)'
       
    97   6 () c_epsilon
       
    98   $ hg log -r 'default'
       
    99   6 () c_epsilon
       
   100 
       
   101 rebase destination
       
   102 ==================
       
   103 
       
   104 rebase on branch ngtip
       
   105 
       
   106   $ hg up elephant
       
   107   switching to topic elephant
       
   108   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   109   $ hg rebase
       
   110   rebasing 4:cb7ae72f4a80 "babar"
       
   111   switching to topic elephant
       
   112   $ hg log -G
       
   113   @  7 (elephant) babar
       
   114   |
       
   115   o  6 () c_epsilon
       
   116   |
       
   117   | o  5 (monkey) zephir
       
   118   | |
       
   119   o |  3 () c_delta
       
   120   | |
       
   121   o |  2 () c_gamma
       
   122   |/
       
   123   o  1 () c_beta
       
   124   |
       
   125   o  0 () c_alpha
       
   126   
       
   127   $ hg up monkey
       
   128   switching to topic monkey
       
   129   1 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
   130   $ hg rebase
       
   131   rebasing 5:d832ddc604ec "zephir"
       
   132   switching to topic monkey
       
   133   $ hg log -G
       
   134   @  8 (monkey) zephir
       
   135   |
       
   136   | o  7 (elephant) babar
       
   137   |/
       
   138   o  6 () c_epsilon
       
   139   |
       
   140   o  3 () c_delta
       
   141   |
       
   142   o  2 () c_gamma
       
   143   |
       
   144   o  1 () c_beta
       
   145   |
       
   146   o  0 () c_alpha
       
   147   
       
   148 
       
   149 Rebase on other topic heads if any
       
   150 
       
   151   $ hg up 'desc(c_delta)'
       
   152   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   153   $ echo "General Huc" >> monkeyville
       
   154   $ hg add monkeyville
       
   155   $ hg ci -t monkey -m Huc
       
   156   $ hg log -G
       
   157   @  9 (monkey) Huc
       
   158   |
       
   159   | o  8 (monkey) zephir
       
   160   | |
       
   161   | | o  7 (elephant) babar
       
   162   | |/
       
   163   | o  6 () c_epsilon
       
   164   |/
       
   165   o  3 () c_delta
       
   166   |
       
   167   o  2 () c_gamma
       
   168   |
       
   169   o  1 () c_beta
       
   170   |
       
   171   o  0 () c_alpha
       
   172   
       
   173   $ hg rebase
       
   174   rebasing 9:d79a104e2902 "Huc" (tip)
       
   175   $ hg log -G
       
   176   @  10 (monkey) Huc
       
   177   |
       
   178   o  8 (monkey) zephir
       
   179   |
       
   180   | o  7 (elephant) babar
       
   181   |/
       
   182   o  6 () c_epsilon
       
   183   |
       
   184   o  3 () c_delta
       
   185   |
       
   186   o  2 () c_gamma
       
   187   |
       
   188   o  1 () c_beta
       
   189   |
       
   190   o  0 () c_alpha
       
   191   
       
   192 
       
   193 merge destination
       
   194 =================
       
   195 
       
   196   $ hg up 'ngtip(default)'
       
   197   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   198   $ hg up default
       
   199   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   200   $ echo zeta >> zeta
       
   201   $ hg add zeta
       
   202   $ hg ci -m "c_zeta"
       
   203   $ hg log -G
       
   204   @  11 () c_zeta
       
   205   |
       
   206   | o  10 (monkey) Huc
       
   207   | |
       
   208   | o  8 (monkey) zephir
       
   209   |/
       
   210   | o  7 (elephant) babar
       
   211   |/
       
   212   o  6 () c_epsilon
       
   213   |
       
   214   o  3 () c_delta
       
   215   |
       
   216   o  2 () c_gamma
       
   217   |
       
   218   o  1 () c_beta
       
   219   |
       
   220   o  0 () c_alpha
       
   221   
       
   222   $ hg up elephant
       
   223   switching to topic elephant
       
   224   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   225   $ hg rebase -d 'desc(c_zeta)' # make sure tip is elsewhere
       
   226   rebasing 7:8d0b77140b05 "babar"
       
   227   switching to topic elephant
       
   228   $ hg up monkey
       
   229   switching to topic monkey
       
   230   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   231   $ hg merge
       
   232   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   233   (branch merge, don't forget to commit)
       
   234   $ hg topic
       
   235      elephant
       
   236    * monkey
       
   237   $ hg ci -m 'merge with default'
       
   238   $ hg topic
       
   239      elephant
       
   240    * monkey
       
   241   $ hg log -G
       
   242   @    13 (monkey) merge with default
       
   243   |\
       
   244   | | o  12 (elephant) babar
       
   245   | |/
       
   246   | o  11 () c_zeta
       
   247   | |
       
   248   o |  10 (monkey) Huc
       
   249   | |
       
   250   o |  8 (monkey) zephir
       
   251   |/
       
   252   o  6 () c_epsilon
       
   253   |
       
   254   o  3 () c_delta
       
   255   |
       
   256   o  2 () c_gamma
       
   257   |
       
   258   o  1 () c_beta
       
   259   |
       
   260   o  0 () c_alpha
       
   261   
       
   262 
       
   263 
       
   264 Check pull --rebase
       
   265 -------------------
       
   266 
       
   267 (we broke it a some point)
       
   268 
       
   269   $ cd ..
       
   270   $ hg clone jungle other --rev '2'
       
   271   adding changesets
       
   272   adding manifests
       
   273   adding file changes
       
   274   added 3 changesets with 3 changes to 3 files
       
   275   updating to branch default
       
   276   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   277   $ cd other
       
   278   $ echo other > other
       
   279   $ hg add other
       
   280   $ hg ci -m 'c_other'
       
   281   $ hg pull -r default --rebase
       
   282   pulling from $TESTTMP/jungle (glob)
       
   283   searching for changes
       
   284   adding changesets
       
   285   adding manifests
       
   286   adding file changes
       
   287   added 3 changesets with 3 changes to 3 files (+1 heads)
       
   288   rebasing 3:dbc48dd9e743 "c_other"
       
   289   $ hg log -G
       
   290   @  7 () c_other
       
   291   |
       
   292   o  6 () c_zeta
       
   293   |
       
   294   o  5 () c_epsilon
       
   295   |
       
   296   o  4 () c_delta
       
   297   |
       
   298   o  2 () c_gamma
       
   299   |
       
   300   o  1 () c_beta
       
   301   |
       
   302   o  0 () c_alpha
       
   303   
       
   304   $ cd ../jungle
       
   305 
       
   306 
       
   307 Default destination for update
       
   308 ===============================
       
   309 
       
   310 initial setup
       
   311 
       
   312   $ hg up elephant
       
   313   switching to topic elephant
       
   314   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   315   $ echo arthur >> jungle
       
   316   $ hg ci -m arthur
       
   317   $ echo pompadour >> jungle
       
   318   $ hg ci -m pompadour
       
   319   $ hg up 'roots(all())'
       
   320   0 files updated, 0 files merged, 6 files removed, 0 files unresolved
       
   321   $ hg log -G
       
   322   o  15 (elephant) pompadour
       
   323   |
       
   324   o  14 (elephant) arthur
       
   325   |
       
   326   | o    13 (monkey) merge with default
       
   327   | |\
       
   328   o---+  12 (elephant) babar
       
   329    / /
       
   330   | o  11 () c_zeta
       
   331   | |
       
   332   o |  10 (monkey) Huc
       
   333   | |
       
   334   o |  8 (monkey) zephir
       
   335   |/
       
   336   o  6 () c_epsilon
       
   337   |
       
   338   o  3 () c_delta
       
   339   |
       
   340   o  2 () c_gamma
       
   341   |
       
   342   o  1 () c_beta
       
   343   |
       
   344   @  0 () c_alpha
       
   345   
       
   346 
       
   347 testing default destination on a branch
       
   348 
       
   349   $ hg up
       
   350   5 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   351   $ hg log -G
       
   352   o  15 (elephant) pompadour
       
   353   |
       
   354   o  14 (elephant) arthur
       
   355   |
       
   356   | o    13 (monkey) merge with default
       
   357   | |\
       
   358   o---+  12 (elephant) babar
       
   359    / /
       
   360   | @  11 () c_zeta
       
   361   | |
       
   362   o |  10 (monkey) Huc
       
   363   | |
       
   364   o |  8 (monkey) zephir
       
   365   |/
       
   366   o  6 () c_epsilon
       
   367   |
       
   368   o  3 () c_delta
       
   369   |
       
   370   o  2 () c_gamma
       
   371   |
       
   372   o  1 () c_beta
       
   373   |
       
   374   o  0 () c_alpha
       
   375   
       
   376 
       
   377 extra setup for topic
       
   378 (making sure tip is not the topic)
       
   379 
       
   380   $ hg up 'desc(c_zeta)'
       
   381   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   382   $ echo 'eta' >> 'eta'
       
   383   $ hg add 'eta'
       
   384   $ hg commit -m 'c_eta'
       
   385   $ hg log -G
       
   386   @  16 () c_eta
       
   387   |
       
   388   | o  15 (elephant) pompadour
       
   389   | |
       
   390   | o  14 (elephant) arthur
       
   391   | |
       
   392   +---o  13 (monkey) merge with default
       
   393   | | |
       
   394   | o |  12 (elephant) babar
       
   395   |/ /
       
   396   o |  11 () c_zeta
       
   397   | |
       
   398   | o  10 (monkey) Huc
       
   399   | |
       
   400   | o  8 (monkey) zephir
       
   401   |/
       
   402   o  6 () c_epsilon
       
   403   |
       
   404   o  3 () c_delta
       
   405   |
       
   406   o  2 () c_gamma
       
   407   |
       
   408   o  1 () c_beta
       
   409   |
       
   410   o  0 () c_alpha
       
   411   
       
   412 
       
   413 Testing default destination for topic
       
   414 
       
   415   $ hg up 'roots(topic(elephant))'
       
   416   switching to topic elephant
       
   417   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   418   $ hg up
       
   419   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   420   $ hg log -G
       
   421   o  16 () c_eta
       
   422   |
       
   423   | @  15 (elephant) pompadour
       
   424   | |
       
   425   | o  14 (elephant) arthur
       
   426   | |
       
   427   +---o  13 (monkey) merge with default
       
   428   | | |
       
   429   | o |  12 (elephant) babar
       
   430   |/ /
       
   431   o |  11 () c_zeta
       
   432   | |
       
   433   | o  10 (monkey) Huc
       
   434   | |
       
   435   | o  8 (monkey) zephir
       
   436   |/
       
   437   o  6 () c_epsilon
       
   438   |
       
   439   o  3 () c_delta
       
   440   |
       
   441   o  2 () c_gamma
       
   442   |
       
   443   o  1 () c_beta
       
   444   |
       
   445   o  0 () c_alpha
       
   446   
       
   447 
       
   448 Testing default destination for topic
       
   449 
       
   450   $ hg up 'p1(roots(topic(elephant)))'
       
   451   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   452   $ hg topic elephant
       
   453   $ hg up
       
   454   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   455   $ hg log -G
       
   456   o  16 () c_eta
       
   457   |
       
   458   | @  15 (elephant) pompadour
       
   459   | |
       
   460   | o  14 (elephant) arthur
       
   461   | |
       
   462   +---o  13 (monkey) merge with default
       
   463   | | |
       
   464   | o |  12 (elephant) babar
       
   465   |/ /
       
   466   o |  11 () c_zeta
       
   467   | |
       
   468   | o  10 (monkey) Huc
       
   469   | |
       
   470   | o  8 (monkey) zephir
       
   471   |/
       
   472   o  6 () c_epsilon
       
   473   |
       
   474   o  3 () c_delta
       
   475   |
       
   476   o  2 () c_gamma
       
   477   |
       
   478   o  1 () c_beta
       
   479   |
       
   480   o  0 () c_alpha
       
   481   
       
   482 
       
   483 Default destination for histedit
       
   484 ================================
       
   485 
       
   486 By default histedit should edit with the current topic only
       
   487 (even when based on other draft
       
   488 
       
   489   $ hg phase 'desc(c_zeta)'
       
   490   11: draft
       
   491   $ HGEDITOR=cat hg histedit | grep pick
       
   492   pick e44744d9ad73 12 babar
       
   493   pick 38eea8439aee 14 arthur
       
   494   pick 411315c48bdc 15 pompadour
       
   495   #  p, pick = use commit