tests/test-topic.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 pinky
       
     4   $ cd pinky
       
     5   $ cat <<EOF >> .hg/hgrc
       
     6   > [phases]
       
     7   > publish=false
       
     8   > EOF
       
     9   $ cat <<EOF >> $HGRCPATH
       
    10   > [experimental]
       
    11   > # disable the new graph style until we drop 3.7 support
       
    12   > graphstyle.missing = |
       
    13   > EOF
       
    14 
       
    15   $ hg help topics
       
    16   hg topics [TOPIC]
       
    17   
       
    18   View current topic, set current topic, change topic for a set of revisions, or
       
    19   see all topics.
       
    20   
       
    21       Clear topic on existing topiced revisions:
       
    22           'hg topic --rev <related revset> --clear'
       
    23   
       
    24       Change topic on some revisions:
       
    25           'hg topic <newtopicname> --rev <related revset>'
       
    26   
       
    27       Clear current topic:
       
    28           'hg topic --clear'
       
    29   
       
    30       Set current topic:
       
    31           'hg topic <topicname>'
       
    32   
       
    33       List of topics:
       
    34           'hg topics'
       
    35   
       
    36       List of topics with their last touched time sorted according to it:
       
    37           'hg topic --age'
       
    38   
       
    39       The active topic (if any) will be prepended with a "*".
       
    40   
       
    41       The --verbose version of this command display various information on the
       
    42       state of each topic.
       
    43   
       
    44   options:
       
    45   
       
    46       --clear   clear active topic if any
       
    47    -r --rev REV revset of existing revisions
       
    48    -l --list    show the stack of changeset in the topic
       
    49       --age     show when you last touched the topics
       
    50   
       
    51   (some details hidden, use --verbose to show complete help)
       
    52   $ hg topics
       
    53 
       
    54 Test topics interaction with evolution:
       
    55 
       
    56   $ hg topics --config experimental.evolution=
       
    57   $ hg topics --config experimental.evolution= --rev . bob
       
    58   abort: must have obsolete enabled to change topics
       
    59   [255]
       
    60 
       
    61 Create some changes:
       
    62 
       
    63   $ for x in alpha beta gamma delta ; do
       
    64   >   echo file $x >> $x
       
    65   >   hg addremove
       
    66   >   hg ci -m "Add file $x"
       
    67   > done
       
    68   adding alpha
       
    69   adding beta
       
    70   adding gamma
       
    71   adding delta
       
    72 
       
    73 Still no topics
       
    74   $ hg topics
       
    75 
       
    76 Test commit flag and help text
       
    77 
       
    78   $ echo stuff >> alpha
       
    79   $ HGEDITOR=cat hg ci -t topicflag
       
    80   
       
    81   
       
    82   HG: Enter commit message.  Lines beginning with 'HG:' are removed.
       
    83   HG: Leave message empty to abort commit.
       
    84   HG: --
       
    85   HG: user: test
       
    86   HG: topic 'topicflag'
       
    87   HG: branch 'default'
       
    88   HG: changed alpha
       
    89   abort: empty commit message
       
    90   [255]
       
    91   $ hg revert alpha
       
    92   $ hg topic
       
    93    * topicflag
       
    94 
       
    95 Make a topic
       
    96   $ hg topic narf
       
    97   $ hg topics
       
    98    * narf
       
    99   $ echo topic work >> alpha
       
   100   $ hg ci -m 'start on narf'
       
   101   $ hg co .^
       
   102   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   103   $ hg topic fran
       
   104   $ hg topics
       
   105    * fran
       
   106      narf
       
   107   $ echo >> fran work >> beta
       
   108   $ hg ci -m 'start on fran'
       
   109   $ hg co narf
       
   110   switching to topic narf
       
   111   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   112   $ hg topic
       
   113      fran
       
   114    * narf
       
   115   $ hg log -r . -T '{topics}\n'
       
   116   narf
       
   117   $ echo 'narf!!!' >> alpha
       
   118   $ hg ci -m 'narf!'
       
   119   $ hg log -G
       
   120   @  changeset:   6:7c34953036d6
       
   121   |  tag:         tip
       
   122   |  topic:       narf
       
   123   |  parent:      4:fb147b0b417c
       
   124   |  user:        test
       
   125   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   126   |  summary:     narf!
       
   127   |
       
   128   | o  changeset:   5:0469d521db49
       
   129   | |  topic:       fran
       
   130   | |  parent:      3:a53952faf762
       
   131   | |  user:        test
       
   132   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   133   | |  summary:     start on fran
       
   134   | |
       
   135   o |  changeset:   4:fb147b0b417c
       
   136   |/   topic:       narf
       
   137   |    user:        test
       
   138   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   139   |    summary:     start on narf
       
   140   |
       
   141   o  changeset:   3:a53952faf762
       
   142   |  user:        test
       
   143   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   144   |  summary:     Add file delta
       
   145   |
       
   146   o  changeset:   2:15d1eb11d2fa
       
   147   |  user:        test
       
   148   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   149   |  summary:     Add file gamma
       
   150   |
       
   151   o  changeset:   1:c692ea2c9224
       
   152   |  user:        test
       
   153   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   154   |  summary:     Add file beta
       
   155   |
       
   156   o  changeset:   0:c2b7d2f7d14b
       
   157      user:        test
       
   158      date:        Thu Jan 01 00:00:00 1970 +0000
       
   159      summary:     Add file alpha
       
   160   
       
   161 
       
   162 Exchanging of topics:
       
   163   $ cd ..
       
   164   $ hg init brain
       
   165   $ hg -R pinky push -r 4 brain
       
   166   pushing to brain
       
   167   searching for changes
       
   168   adding changesets
       
   169   adding manifests
       
   170   adding file changes
       
   171   added 5 changesets with 5 changes to 4 files
       
   172 
       
   173 Export
       
   174 
       
   175   $ hg -R pinky export
       
   176   # HG changeset patch
       
   177   # User test
       
   178   # Date 0 0
       
   179   #      Thu Jan 01 00:00:00 1970 +0000
       
   180   # Node ID 7c34953036d6a36eae468c550d0592b89ee8bffc
       
   181   # Parent  fb147b0b417c25ca15547cd945acf51cf8dcaf02
       
   182   # EXP-Topic narf
       
   183   narf!
       
   184   
       
   185   diff -r fb147b0b417c -r 7c34953036d6 alpha
       
   186   --- a/alpha	Thu Jan 01 00:00:00 1970 +0000
       
   187   +++ b/alpha	Thu Jan 01 00:00:00 1970 +0000
       
   188   @@ -1,2 +1,3 @@
       
   189    file alpha
       
   190    topic work
       
   191   +narf!!!
       
   192 
       
   193 Import
       
   194 
       
   195   $ hg -R pinky export > narf.diff
       
   196   $ hg -R pinky --config extensions.strip= strip .
       
   197   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   198   saved backup bundle to $TESTTMP/pinky/.hg/strip-backup/7c34953036d6-1ff3bae2-backup.hg (glob)
       
   199   $ hg -R pinky import narf.diff
       
   200   applying narf.diff
       
   201   $ hg -R pinky log -r .
       
   202   changeset:   6:7c34953036d6
       
   203   tag:         tip
       
   204   topic:       narf
       
   205   parent:      4:fb147b0b417c
       
   206   user:        test
       
   207   date:        Thu Jan 01 00:00:00 1970 +0000
       
   208   summary:     narf!
       
   209   
       
   210 Now that we've pushed to brain, the work done on narf is no longer a
       
   211 draft, so we won't see that topic name anymore:
       
   212 
       
   213   $ hg log -R pinky -G
       
   214   @  changeset:   6:7c34953036d6
       
   215   |  tag:         tip
       
   216   |  topic:       narf
       
   217   |  parent:      4:fb147b0b417c
       
   218   |  user:        test
       
   219   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   220   |  summary:     narf!
       
   221   |
       
   222   | o  changeset:   5:0469d521db49
       
   223   | |  topic:       fran
       
   224   | |  parent:      3:a53952faf762
       
   225   | |  user:        test
       
   226   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   227   | |  summary:     start on fran
       
   228   | |
       
   229   o |  changeset:   4:fb147b0b417c
       
   230   |/   user:        test
       
   231   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   232   |    summary:     start on narf
       
   233   |
       
   234   o  changeset:   3:a53952faf762
       
   235   |  user:        test
       
   236   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   237   |  summary:     Add file delta
       
   238   |
       
   239   o  changeset:   2:15d1eb11d2fa
       
   240   |  user:        test
       
   241   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   242   |  summary:     Add file gamma
       
   243   |
       
   244   o  changeset:   1:c692ea2c9224
       
   245   |  user:        test
       
   246   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   247   |  summary:     Add file beta
       
   248   |
       
   249   o  changeset:   0:c2b7d2f7d14b
       
   250      user:        test
       
   251      date:        Thu Jan 01 00:00:00 1970 +0000
       
   252      summary:     Add file alpha
       
   253   
       
   254   $ cd brain
       
   255   $ hg co tip
       
   256   4 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   257 
       
   258 Because the change is public, we won't inherit the topic from narf.
       
   259 
       
   260   $ hg topic
       
   261   $ echo what >> alpha
       
   262   $ hg topic query
       
   263   $ hg ci -m 'what is narf, pinky?'
       
   264   $ hg log -Gl2
       
   265   @  changeset:   5:c01515cfc331
       
   266   |  tag:         tip
       
   267   |  topic:       query
       
   268   |  user:        test
       
   269   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   270   |  summary:     what is narf, pinky?
       
   271   |
       
   272   o  changeset:   4:fb147b0b417c
       
   273   |  user:        test
       
   274   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   275   |  summary:     start on narf
       
   276   |
       
   277   $ hg push -f ../pinky -r query
       
   278   pushing to ../pinky
       
   279   searching for changes
       
   280   adding changesets
       
   281   adding manifests
       
   282   adding file changes
       
   283   added 1 changesets with 1 changes to 1 files (+1 heads)
       
   284   $ hg -R ../pinky log -Gl 4
       
   285   o  changeset:   7:c01515cfc331
       
   286   |  tag:         tip
       
   287   |  topic:       query
       
   288   |  parent:      4:fb147b0b417c
       
   289   |  user:        test
       
   290   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   291   |  summary:     what is narf, pinky?
       
   292   |
       
   293   | @  changeset:   6:7c34953036d6
       
   294   |/   topic:       narf
       
   295   |    parent:      4:fb147b0b417c
       
   296   |    user:        test
       
   297   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   298   |    summary:     narf!
       
   299   |
       
   300   | o  changeset:   5:0469d521db49
       
   301   | |  topic:       fran
       
   302   | |  parent:      3:a53952faf762
       
   303   | |  user:        test
       
   304   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   305   | |  summary:     start on fran
       
   306   | |
       
   307   o |  changeset:   4:fb147b0b417c
       
   308   |/   user:        test
       
   309   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   310   |    summary:     start on narf
       
   311   |
       
   312   $ hg topics
       
   313    * query
       
   314   $ cd ../pinky
       
   315   $ hg co query
       
   316   switching to topic query
       
   317   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   318   $ echo answer >> alpha
       
   319   $ hg ci -m 'Narf is like `zort` or `poit`!'
       
   320   $ hg merge narf
       
   321   merging alpha
       
   322   warning: conflicts while merging alpha! (edit, then use 'hg resolve --mark')
       
   323   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   324   use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
       
   325   [1]
       
   326   $ hg revert -r narf alpha
       
   327   $ hg resolve -m alpha
       
   328   (no more unresolved files)
       
   329   $ hg topic narf
       
   330   $ hg ci -m 'Finish narf'
       
   331   $ hg topics
       
   332      fran
       
   333    * narf
       
   334      query
       
   335   $ hg debugnamecomplete # branch:topic here is a buggy side effect
       
   336   default
       
   337   default:fran
       
   338   default:narf
       
   339   default:query
       
   340   fran
       
   341   narf
       
   342   query
       
   343   tip
       
   344   $ hg phase --public narf
       
   345 
       
   346 POSSIBLE BUG: narf topic stays alive even though we just made all
       
   347 narf commits public:
       
   348 
       
   349   $ hg topics
       
   350      fran
       
   351    * narf
       
   352   $ hg log -Gl 6
       
   353   @    changeset:   9:ae074045b7a7
       
   354   |\   tag:         tip
       
   355   | |  parent:      8:54c943c1c167
       
   356   | |  parent:      6:7c34953036d6
       
   357   | |  user:        test
       
   358   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   359   | |  summary:     Finish narf
       
   360   | |
       
   361   | o  changeset:   8:54c943c1c167
       
   362   | |  user:        test
       
   363   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   364   | |  summary:     Narf is like `zort` or `poit`!
       
   365   | |
       
   366   | o  changeset:   7:c01515cfc331
       
   367   | |  parent:      4:fb147b0b417c
       
   368   | |  user:        test
       
   369   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   370   | |  summary:     what is narf, pinky?
       
   371   | |
       
   372   o |  changeset:   6:7c34953036d6
       
   373   |/   parent:      4:fb147b0b417c
       
   374   |    user:        test
       
   375   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   376   |    summary:     narf!
       
   377   |
       
   378   | o  changeset:   5:0469d521db49
       
   379   | |  topic:       fran
       
   380   | |  parent:      3:a53952faf762
       
   381   | |  user:        test
       
   382   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   383   | |  summary:     start on fran
       
   384   | |
       
   385   o |  changeset:   4:fb147b0b417c
       
   386   |/   user:        test
       
   387   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   388   |    summary:     start on narf
       
   389   |
       
   390   $ cd ../brain
       
   391   $ hg topics
       
   392    * query
       
   393   $ hg pull ../pinky -r narf
       
   394   pulling from ../pinky
       
   395   abort: unknown revision 'narf'!
       
   396   [255]
       
   397   $ hg pull ../pinky -r default
       
   398   pulling from ../pinky
       
   399   searching for changes
       
   400   adding changesets
       
   401   adding manifests
       
   402   adding file changes
       
   403   added 3 changesets with 3 changes to 1 files
       
   404   (run 'hg update' to get a working copy)
       
   405   $ hg topics
       
   406    * query
       
   407 
       
   408 We can pull in the draft-phase change and we get the new topic
       
   409 
       
   410   $ hg pull ../pinky
       
   411   pulling from ../pinky
       
   412   searching for changes
       
   413   adding changesets
       
   414   adding manifests
       
   415   adding file changes
       
   416   added 1 changesets with 1 changes to 1 files (+1 heads)
       
   417   (run 'hg heads' to see heads)
       
   418   $ hg topics
       
   419      fran
       
   420    * query
       
   421   $ hg log -Gr 'draft()'
       
   422   o  changeset:   9:0469d521db49
       
   423   |  tag:         tip
       
   424   |  topic:       fran
       
   425   |  parent:      3:a53952faf762
       
   426   |  user:        test
       
   427   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   428   |  summary:     start on fran
       
   429   |
       
   430 
       
   431 query is not an open topic, so when we clear the current topic it'll
       
   432 disappear:
       
   433 
       
   434   $ hg topics --clear
       
   435   $ hg topics
       
   436      fran
       
   437 
       
   438 --clear when we don't have an active topic isn't an error:
       
   439 
       
   440   $ hg topics --clear
       
   441 
       
   442 Topic revset
       
   443   $ hg log -r 'topic()' -G
       
   444   o  changeset:   9:0469d521db49
       
   445   |  tag:         tip
       
   446   |  topic:       fran
       
   447   |  parent:      3:a53952faf762
       
   448   |  user:        test
       
   449   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   450   |  summary:     start on fran
       
   451   |
       
   452   $ hg log -r 'not topic()' -G
       
   453   o    changeset:   8:ae074045b7a7
       
   454   |\   parent:      7:54c943c1c167
       
   455   | |  parent:      6:7c34953036d6
       
   456   | |  user:        test
       
   457   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   458   | |  summary:     Finish narf
       
   459   | |
       
   460   | o  changeset:   7:54c943c1c167
       
   461   | |  parent:      5:c01515cfc331
       
   462   | |  user:        test
       
   463   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   464   | |  summary:     Narf is like `zort` or `poit`!
       
   465   | |
       
   466   o |  changeset:   6:7c34953036d6
       
   467   | |  parent:      4:fb147b0b417c
       
   468   | |  user:        test
       
   469   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   470   | |  summary:     narf!
       
   471   | |
       
   472   | @  changeset:   5:c01515cfc331
       
   473   |/   user:        test
       
   474   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   475   |    summary:     what is narf, pinky?
       
   476   |
       
   477   o  changeset:   4:fb147b0b417c
       
   478   |  user:        test
       
   479   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   480   |  summary:     start on narf
       
   481   |
       
   482   o  changeset:   3:a53952faf762
       
   483   |  user:        test
       
   484   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   485   |  summary:     Add file delta
       
   486   |
       
   487   o  changeset:   2:15d1eb11d2fa
       
   488   |  user:        test
       
   489   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   490   |  summary:     Add file gamma
       
   491   |
       
   492   o  changeset:   1:c692ea2c9224
       
   493   |  user:        test
       
   494   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   495   |  summary:     Add file beta
       
   496   |
       
   497   o  changeset:   0:c2b7d2f7d14b
       
   498      user:        test
       
   499      date:        Thu Jan 01 00:00:00 1970 +0000
       
   500      summary:     Add file alpha
       
   501   
       
   502 No matches because narf is already closed:
       
   503   $ hg log -r 'topic(narf)' -G
       
   504 This regexp should match the topic `fran`:
       
   505   $ hg log -r 'topic("re:.ra.")' -G
       
   506   o  changeset:   9:0469d521db49
       
   507   |  tag:         tip
       
   508   |  topic:       fran
       
   509   |  parent:      3:a53952faf762
       
   510   |  user:        test
       
   511   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   512   |  summary:     start on fran
       
   513   |
       
   514 Exact match on fran:
       
   515   $ hg log -r 'topic(fran)' -G
       
   516   o  changeset:   9:0469d521db49
       
   517   |  tag:         tip
       
   518   |  topic:       fran
       
   519   |  parent:      3:a53952faf762
       
   520   |  user:        test
       
   521   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   522   |  summary:     start on fran
       
   523   |
       
   524 
       
   525 Match current topic:
       
   526   $ hg topic
       
   527      fran
       
   528   $ hg log -r 'topic(.)'
       
   529 (no output is expected)
       
   530   $ hg co fran
       
   531   switching to topic fran
       
   532   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   533   $ hg log -r 'topic(.)'
       
   534   changeset:   9:0469d521db49
       
   535   tag:         tip
       
   536   topic:       fran
       
   537   parent:      3:a53952faf762
       
   538   user:        test
       
   539   date:        Thu Jan 01 00:00:00 1970 +0000
       
   540   summary:     start on fran
       
   541   
       
   542 
       
   543 Deactivate the topic.
       
   544   $ hg topics
       
   545    * fran
       
   546   $ hg topics --clear
       
   547   $ echo fran? >> beta
       
   548   $ hg ci -m 'fran?'
       
   549   created new head
       
   550   $ hg log -Gr 'draft()'
       
   551   @  changeset:   10:4073470c35e1
       
   552   |  tag:         tip
       
   553   |  user:        test
       
   554   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   555   |  summary:     fran?
       
   556   |
       
   557   o  changeset:   9:0469d521db49
       
   558   |  topic:       fran
       
   559   |  parent:      3:a53952faf762
       
   560   |  user:        test
       
   561   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   562   |  summary:     start on fran
       
   563   |
       
   564   $ hg topics
       
   565      fran
       
   566 Changing topic fails if we don't give a topic
       
   567   $ hg topic --rev 9
       
   568   abort: changing topic requires a topic name or --clear
       
   569   [255]
       
   570 
       
   571 Can't change topic of a public change
       
   572   $ hg topic --rev 1:: --clear
       
   573   abort: can't change topic of a public change
       
   574   [255]
       
   575 
       
   576 Can clear topics
       
   577   $ hg topic --rev 9 --clear
       
   578   changed topic on 1 changes
       
   579   $ hg log -Gr 'draft() and not obsolete()'
       
   580   o  changeset:   11:0beca5ab56c3
       
   581   |  tag:         tip
       
   582   |  parent:      3:a53952faf762
       
   583   |  user:        test
       
   584   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   585   |  summary:     start on fran
       
   586   |
       
   587   | @  changeset:   10:4073470c35e1
       
   588   | |  user:        test
       
   589   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   590   | |  summary:     fran?
       
   591   | |
       
   592 
       
   593 Normally you'd do this with evolve, but we'll use rebase to avoid
       
   594 bonus deps in the testsuite.
       
   595 
       
   596   $ hg rebase -d tip -s .
       
   597   rebasing 10:4073470c35e1 "fran?"
       
   598 
       
   599 Can add a topic to an existing change
       
   600   $ hg topic
       
   601   $ hg sum
       
   602   parent: 12:18b70b8de1f0 tip
       
   603    fran?
       
   604   branch: default
       
   605   commit: (clean)
       
   606   update: 5 new changesets, 2 branch heads (merge)
       
   607   phases: 2 draft
       
   608   $ hg topic --rev 11 wat
       
   609   changed topic on 1 changes
       
   610   $ hg log -r .
       
   611   changeset:   12:18b70b8de1f0
       
   612   user:        test
       
   613   date:        Thu Jan 01 00:00:00 1970 +0000
       
   614   summary:     fran?
       
   615   
       
   616   $ hg sum
       
   617   parent: 12:18b70b8de1f0 
       
   618    fran?
       
   619   branch: default
       
   620   commit: (clean)
       
   621   update: 5 new changesets, 2 branch heads (merge)
       
   622   phases: 3 draft
       
   623   unstable: 1 changesets
       
   624   $ hg topic
       
   625      wat
       
   626   $ hg log -Gr 'draft() and not obsolete()'
       
   627   o  changeset:   13:686a642006db
       
   628   |  tag:         tip
       
   629   |  topic:       wat
       
   630   |  parent:      3:a53952faf762
       
   631   |  user:        test
       
   632   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   633   |  summary:     start on fran
       
   634   |
       
   635   | @  changeset:   12:18b70b8de1f0
       
   636   | |  user:        test
       
   637   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   638   | |  summary:     fran?
       
   639   | |
       
   640 
       
   641 Normally you'd do this with evolve, but we'll use rebase to avoid
       
   642 bonus deps in the testsuite.
       
   643 
       
   644   $ hg topic
       
   645      wat
       
   646   $ hg rebase -d tip -s .
       
   647   rebasing 12:18b70b8de1f0 "fran?"
       
   648   switching to topic wat
       
   649   $ hg topic
       
   650      wat
       
   651 
       
   652   $ hg log -Gr 'draft()'
       
   653   @  changeset:   14:45358f7a5892
       
   654   |  tag:         tip
       
   655   |  user:        test
       
   656   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   657   |  summary:     fran?
       
   658   |
       
   659   o  changeset:   13:686a642006db
       
   660   |  topic:       wat
       
   661   |  parent:      3:a53952faf762
       
   662   |  user:        test
       
   663   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   664   |  summary:     start on fran
       
   665   |
       
   666 
       
   667 Amend a topic
       
   668 
       
   669   $ hg topic watwat
       
   670   $ hg ci --amend
       
   671   $ hg log -Gr 'draft()'
       
   672   @  changeset:   16:6c40a4c21bbe
       
   673   |  tag:         tip
       
   674   |  topic:       watwat
       
   675   |  parent:      13:686a642006db
       
   676   |  user:        test
       
   677   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   678   |  summary:     fran?
       
   679   |
       
   680   o  changeset:   13:686a642006db
       
   681   |  topic:       wat
       
   682   |  parent:      3:a53952faf762
       
   683   |  user:        test
       
   684   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   685   |  summary:     start on fran
       
   686   |
       
   687 
       
   688 Clear and amend:
       
   689 
       
   690   $ hg topic --clear
       
   691   $ hg ci --amend
       
   692   $ hg log -r .
       
   693   changeset:   18:0f9cd5070654
       
   694   tag:         tip
       
   695   parent:      13:686a642006db
       
   696   user:        test
       
   697   date:        Thu Jan 01 00:00:00 1970 +0000
       
   698   summary:     fran?
       
   699   
       
   700 Reading the same topic with topic --rev should work:
       
   701   $ hg topic --rev . watwat
       
   702   switching to topic watwat
       
   703   changed topic on 1 changes
       
   704 
       
   705 Testing issue5441
       
   706   $ hg co 19
       
   707   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   708   $ hg log -Gr 'draft()'
       
   709   @  changeset:   19:980a0f608481
       
   710   |  tag:         tip
       
   711   |  topic:       watwat
       
   712   |  parent:      13:686a642006db
       
   713   |  user:        test
       
   714   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   715   |  summary:     fran?
       
   716   |
       
   717   o  changeset:   13:686a642006db
       
   718   |  topic:       wat
       
   719   |  parent:      3:a53952faf762
       
   720   |  user:        test
       
   721   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   722   |  summary:     start on fran
       
   723   |
       
   724 
       
   725   $ hg topics --rev '13::19' changewat
       
   726   switching to topic changewat
       
   727   changed topic on 2 changes
       
   728   $ hg log -Gr 'draft()'
       
   729   @  changeset:   21:56c83be6105f
       
   730   |  tag:         tip
       
   731   |  topic:       changewat
       
   732   |  user:        test
       
   733   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   734   |  summary:     fran?
       
   735   |
       
   736   o  changeset:   20:ceba5be9d56f
       
   737   |  topic:       changewat
       
   738   |  parent:      3:a53952faf762
       
   739   |  user:        test
       
   740   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   741   |  summary:     start on fran
       
   742   |
       
   743 
       
   744 Case with branching:
       
   745 
       
   746   $ hg up changewat
       
   747   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   748   $ hg up t1
       
   749   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   750   $ echo gamma >> gamma
       
   751   $ hg ci -m gamma
       
   752   $ hg log -Gr 'draft()'
       
   753   @  changeset:   22:0d3d805542b4
       
   754   |  tag:         tip
       
   755   |  topic:       changewat
       
   756   |  parent:      20:ceba5be9d56f
       
   757   |  user:        test
       
   758   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   759   |  summary:     gamma
       
   760   |
       
   761   | o  changeset:   21:56c83be6105f
       
   762   |/   topic:       changewat
       
   763   |    user:        test
       
   764   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   765   |    summary:     fran?
       
   766   |
       
   767   o  changeset:   20:ceba5be9d56f
       
   768   |  topic:       changewat
       
   769   |  parent:      3:a53952faf762
       
   770   |  user:        test
       
   771   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   772   |  summary:     start on fran
       
   773   |
       
   774   $ hg topics --rev 't1::' changewut
       
   775   switching to topic changewut
       
   776   changed topic on 3 changes
       
   777   $ hg log -Gr 'draft()'
       
   778   @  changeset:   25:729ed5717393
       
   779   |  tag:         tip
       
   780   |  topic:       changewut
       
   781   |  parent:      23:62e49f09f883
       
   782   |  user:        test
       
   783   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   784   |  summary:     gamma
       
   785   |
       
   786   | o  changeset:   24:369c6e2e5474
       
   787   |/   topic:       changewut
       
   788   |    user:        test
       
   789   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   790   |    summary:     fran?
       
   791   |
       
   792   o  changeset:   23:62e49f09f883
       
   793   |  topic:       changewut
       
   794   |  parent:      3:a53952faf762
       
   795   |  user:        test
       
   796   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   797   |  summary:     start on fran
       
   798   |
       
   799 
       
   800 Testing for updating to t0
       
   801 ==========================
       
   802 
       
   803   $ hg stack
       
   804   ### topic: changewut (2 heads)
       
   805   ### branch: default, 5 behind
       
   806   t3: fran?
       
   807   t1^ start on fran (base)
       
   808   t2@ gamma (current)
       
   809   t1: start on fran
       
   810   t0^ Add file delta (base)
       
   811   $ hg up t0
       
   812   preserving the current topic 'changewut'
       
   813   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   814   $ hg topic
       
   815    * changewut
       
   816   $ hg stack
       
   817   ### topic: changewut (2 heads)
       
   818   ### branch: default, 5 behind
       
   819   t3: fran?
       
   820   t1^ start on fran (base)
       
   821   t2: gamma
       
   822   t1: start on fran
       
   823   t0^ Add file delta (base)
       
   824 
       
   825   $ hg topics --age
       
   826    * changewut (*) (glob)
       
   827 
       
   828   $ cd ..
       
   829 
       
   830 Testing the new config knob to forbid untopiced commit
       
   831 ======================================================
       
   832 
       
   833   $ hg init ponky
       
   834   $ cd ponky
       
   835   $ cat <<EOF >> .hg/hgrc
       
   836   > [phases]
       
   837   > publish=false
       
   838   > EOF
       
   839   $ cat <<EOF >> $HGRCPATH
       
   840   > [experimental]
       
   841   > enforce-topic = yes
       
   842   > EOF
       
   843   $ touch a b c d
       
   844   $ hg add a
       
   845   $ hg ci -m "Added a"
       
   846   abort: no active topic
       
   847   (set a current topic or use '--config experimental.enforce-topic=no' to commit without a topic)
       
   848   [255]
       
   849 
       
   850 (same test, checking we abort before the editor)
       
   851 
       
   852   $ EDITOR=cat hg ci -m "Added a" --edit
       
   853   abort: no active topic
       
   854   (set a current topic or use '--config experimental.enforce-topic=no' to commit without a topic)
       
   855   [255]
       
   856   $ hg ci -m "added a" --config experimental.enforce-topic=no
       
   857   $ hg log
       
   858   changeset:   0:a154386e50d1
       
   859   tag:         tip
       
   860   user:        test
       
   861   date:        Thu Jan 01 00:00:00 1970 +0000
       
   862   summary:     added a
       
   863   
       
   864   $ hg topic topic1970 --rev 0
       
   865   switching to topic topic1970
       
   866   changed topic on 1 changes
       
   867   $ hg add b
       
   868   $ hg topic topic1990
       
   869   $ hg ci -m "Added b" --config devel.default-date="631152000 0" --date "631152000 0"
       
   870   $ hg add c
       
   871   $ hg topic topic2010
       
   872   $ hg ci -m "Added c" --config devel.default-date="1262304000 0" --date "1262304000 0"
       
   873   $ hg log
       
   874   changeset:   3:9048b194797d
       
   875   tag:         tip
       
   876   topic:       topic2010
       
   877   user:        test
       
   878   date:        Fri Jan 01 00:00:00 2010 +0000
       
   879   summary:     Added c
       
   880   
       
   881   changeset:   2:186d493c7f8d
       
   882   topic:       topic1990
       
   883   user:        test
       
   884   date:        Mon Jan 01 00:00:00 1990 +0000
       
   885   summary:     Added b
       
   886   
       
   887   changeset:   1:e5a30a141954
       
   888   topic:       topic1970
       
   889   parent:      -1:000000000000
       
   890   user:        test
       
   891   date:        Thu Jan 01 00:00:00 1970 +0000
       
   892   summary:     added a
       
   893   
       
   894   $ hg topics
       
   895      topic1970
       
   896      topic1990
       
   897    * topic2010
       
   898   $ hg topics --age
       
   899      topic1970 (*) (glob)
       
   900    * topic2010 (2010-01-01)
       
   901      topic1990 (1990-01-01)
       
   902   $ hg up topic1970
       
   903   switching to topic topic1970
       
   904   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   905   $ hg topics --age
       
   906    * topic1970 (*) (glob)
       
   907      topic2010 (2010-01-01)
       
   908      topic1990 (1990-01-01)
       
   909 
       
   910   $ cd ..