tests/test-topic-mode.t
branchmercurial-3.9
changeset 3111 7518ff7f26da
parent 3110 50be10c63825
child 3112 706402d70b3f
equal deleted inserted replaced
3110:50be10c63825 3111:7518ff7f26da
     1   $ . "$TESTDIR/testlib/topic_setup.sh"
       
     2 
       
     3 Testing the config knob to forbid untopiced commit
       
     4 ======================================================
       
     5 
       
     6   $ hg init $TESTTMP/untopic-commit
       
     7   $ cd $TESTTMP/untopic-commit
       
     8   $ cat <<EOF >> .hg/hgrc
       
     9   > [phases]
       
    10   > publish=false
       
    11   > EOF
       
    12   $ cat <<EOF >> $HGRCPATH
       
    13   > [experimental]
       
    14   > topic-mode = enforce
       
    15   > EOF
       
    16   $ touch a b c d
       
    17   $ hg add a
       
    18   $ hg ci -m "Added a"
       
    19   abort: no active topic
       
    20   (see 'hg help -e topic.topic-mode' for details)
       
    21   [255]
       
    22 
       
    23 (same test, checking we abort before the editor)
       
    24 
       
    25   $ EDITOR=cat hg ci -m "Added a" --edit
       
    26   abort: no active topic
       
    27   (see 'hg help -e topic.topic-mode' for details)
       
    28   [255]
       
    29   $ hg ci -m "added a" --config experimental.topic-mode=ignore
       
    30   $ hg log
       
    31   changeset:   0:a154386e50d1
       
    32   tag:         tip
       
    33   user:        test
       
    34   date:        Thu Jan 01 00:00:00 1970 +0000
       
    35   summary:     added a
       
    36   
       
    37 
       
    38 Testing the config knob to warn about untopiced commit
       
    39 ==========================================================
       
    40 
       
    41   $ hg init $TESTTMP/untopic-warn-commit
       
    42   $ cd $TESTTMP/untopic-warn-commit
       
    43   $ cat <<EOF >> .hg/hgrc
       
    44   > [phases]
       
    45   > publish=false
       
    46   > EOF
       
    47   $ cat <<EOF >> $HGRCPATH
       
    48   > [experimental]
       
    49   > topic-mode = warning
       
    50   > EOF
       
    51   $ touch a b c d
       
    52   $ hg add a
       
    53 
       
    54 (same test, checking we abort before the editor)
       
    55 
       
    56   $ HGEDITOR=cat hg ci -m "Added a" --edit
       
    57   warning: new draft commit without topic
       
    58   (see 'hg help -e topic.topic-mode' for details)
       
    59   Added a
       
    60   
       
    61   
       
    62   HG: Enter commit message.  Lines beginning with 'HG:' are removed.
       
    63   HG: Leave message empty to abort commit.
       
    64   HG: --
       
    65   HG: user: test
       
    66   HG: branch 'default'
       
    67   HG: added a
       
    68 
       
    69   $ HGEDITOR=cat hg ci --amend -m "Added a" --edit
       
    70   Added a
       
    71   
       
    72   
       
    73   HG: Enter commit message.  Lines beginning with 'HG:' are removed.
       
    74   HG: Leave message empty to abort commit.
       
    75   HG: --
       
    76   HG: user: test
       
    77   HG: branch 'default'
       
    78   HG: added a
       
    79   $ hg ci --amend -m "added a'" --config experimental.topic-mode=ignore
       
    80   $ hg log
       
    81   changeset:   2:2e862d8b5eff
       
    82   tag:         tip
       
    83   parent:      -1:000000000000
       
    84   user:        test
       
    85   date:        Thu Jan 01 00:00:00 1970 +0000
       
    86   summary:     added a'
       
    87   
       
    88 
       
    89 Testing the config knob to warn about untopiced merge commit
       
    90 ================================================================
       
    91 
       
    92   $ hg init $TESTTMP/test-untopic-merge-commit
       
    93   $ cd $TESTTMP/test-untopic-merge-commit
       
    94   $ cat <<EOF >> .hg/hgrc
       
    95   > [phases]
       
    96   > publish=false
       
    97   > EOF
       
    98   $ cat <<EOF >> $HGRCPATH
       
    99   > [experimental]
       
   100   > topic-mode = enforce
       
   101   > EOF
       
   102   $ touch ROOT
       
   103   $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore
       
   104   adding ROOT
       
   105   $ touch a
       
   106   $ hg add a
       
   107   $ hg topic mytopic
       
   108   marked working directory as topic: mytopic
       
   109   $ hg ci -m "Added a"
       
   110   active topic 'mytopic' grew its first changeset
       
   111 
       
   112   $ hg up -r "desc('ROOT')"
       
   113   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   114   $ touch default
       
   115   $ hg add default
       
   116   $ hg commit -m "default" --config experimental.topic-mode=ignore
       
   117 
       
   118   $ hg merge mytopic
       
   119   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   120   (branch merge, don't forget to commit)
       
   121   $ hg commit -m "merge mytopic"
       
   122   warning: new draft commit without topic
       
   123   (see 'hg help -e topic.topic-mode' for details)
       
   124 
       
   125   $ hg log -G
       
   126   @    changeset:   3:676a445d1c09
       
   127   |\   tag:         tip
       
   128   | |  parent:      2:a4da109ee59f
       
   129   | |  parent:      1:e5b6c632bd8e
       
   130   | |  user:        test
       
   131   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   132   | |  summary:     merge mytopic
       
   133   | |
       
   134   | o  changeset:   2:a4da109ee59f
       
   135   | |  parent:      0:ec1d2790416d
       
   136   | |  user:        test
       
   137   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   138   | |  summary:     default
       
   139   | |
       
   140   o |  changeset:   1:e5b6c632bd8e
       
   141   |/   topic:       mytopic
       
   142   |    user:        test
       
   143   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   144   |    summary:     Added a
       
   145   |
       
   146   o  changeset:   0:ec1d2790416d
       
   147      user:        test
       
   148      date:        Thu Jan 01 00:00:00 1970 +0000
       
   149      summary:     ROOT
       
   150   
       
   151 
       
   152 Testing the config knob to about on untopiced merge commit
       
   153 ================================================================
       
   154 
       
   155   $ hg init $TESTTMP/test-untopic-merge-commit-abort
       
   156   $ cd $TESTTMP/test-untopic-merge-commit-abort
       
   157   $ cat <<EOF >> .hg/hgrc
       
   158   > [phases]
       
   159   > publish=false
       
   160   > EOF
       
   161   $ cat <<EOF >> $HGRCPATH
       
   162   > [experimental]
       
   163   > topic-mode = enforce-all
       
   164   > EOF
       
   165   $ touch ROOT
       
   166   $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore
       
   167   adding ROOT
       
   168   $ touch a
       
   169   $ hg add a
       
   170   $ hg topic mytopic
       
   171   marked working directory as topic: mytopic
       
   172   $ hg ci -m "Added a"
       
   173   active topic 'mytopic' grew its first changeset
       
   174 
       
   175   $ hg up -r "desc('ROOT')"
       
   176   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   177   $ touch default
       
   178   $ hg add default
       
   179   $ hg commit -m "default" --config experimental.topic-mode=ignore
       
   180 
       
   181   $ hg merge mytopic
       
   182   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   183   (branch merge, don't forget to commit)
       
   184   $ hg commit -m "merge mytopic"
       
   185   abort: no active topic
       
   186   (see 'hg help -e topic.topic-mode' for details)
       
   187   [255]
       
   188 
       
   189   $ hg log -G
       
   190   @  changeset:   2:a4da109ee59f
       
   191   |  tag:         tip
       
   192   |  parent:      0:ec1d2790416d
       
   193   |  user:        test
       
   194   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   195   |  summary:     default
       
   196   |
       
   197   | @  changeset:   1:e5b6c632bd8e
       
   198   |/   topic:       mytopic
       
   199   |    user:        test
       
   200   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   201   |    summary:     Added a
       
   202   |
       
   203   o  changeset:   0:ec1d2790416d
       
   204      user:        test
       
   205      date:        Thu Jan 01 00:00:00 1970 +0000
       
   206      summary:     ROOT
       
   207   
       
   208 Testing the config knob to use a random topic for untopic commit
       
   209 ====================================================================
       
   210 
       
   211   $ hg init $TESTTMP/test-untopic-random
       
   212   $ cd $TESTTMP/test-untopic-random
       
   213   $ cat <<EOF >> .hg/hgrc
       
   214   > [phases]
       
   215   > publish=false
       
   216   > EOF
       
   217   $ cat <<EOF >> $HGRCPATH
       
   218   > [experimental]
       
   219   > topic-mode = random
       
   220   > EOF
       
   221 
       
   222   $ touch ROOT
       
   223   $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore
       
   224   adding ROOT
       
   225 
       
   226   $ touch A
       
   227   $ hg add A
       
   228   $ hg commit -m "Add A" --config devel.randomseed=42
       
   229   active topic 'panoramic-antelope' grew its first changeset
       
   230 
       
   231   $ hg up -r "desc(ROOT)"
       
   232   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   233 
       
   234   $ touch B
       
   235   $ hg add B
       
   236   $ hg commit -m "Add B" --config devel.randomseed=128
       
   237   active topic 'various-dove' grew its first changeset
       
   238 
       
   239 Test a merge too
       
   240 
       
   241   $ hg phase --public -r .
       
   242   active topic 'various-dove' is now empty
       
   243   $ hg up default
       
   244   clearing empty topic "various-dove"
       
   245   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   246   $ hg log -G
       
   247   @  changeset:   2:2d2acb6efad5
       
   248   |  tag:         tip
       
   249   |  parent:      0:ec1d2790416d
       
   250   |  user:        test
       
   251   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   252   |  summary:     Add B
       
   253   |
       
   254   | o  changeset:   1:d4b548f35972
       
   255   |/   topic:       panoramic-antelope
       
   256   |    user:        test
       
   257   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   258   |    summary:     Add A
       
   259   |
       
   260   o  changeset:   0:ec1d2790416d
       
   261      user:        test
       
   262      date:        Thu Jan 01 00:00:00 1970 +0000
       
   263      summary:     ROOT
       
   264   
       
   265   $ hg merge panoramic-antelope
       
   266   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   267   (branch merge, don't forget to commit)
       
   268   $ hg ci -m 'merge'
       
   269 Testing the config knob to use a random topic for untopic commit (even for merge)
       
   270 =================================================================================
       
   271 
       
   272   $ hg init $TESTTMP/test-untopic-random-all
       
   273   $ cd $TESTTMP/test-untopic-random-all
       
   274   $ cat <<EOF >> .hg/hgrc
       
   275   > [phases]
       
   276   > publish=false
       
   277   > EOF
       
   278   $ cat <<EOF >> $HGRCPATH
       
   279   > [experimental]
       
   280   > topic-mode = random-all
       
   281   > EOF
       
   282 
       
   283   $ touch ROOT
       
   284   $ hg commit -A -m "ROOT" --config experimental.topic-mode=ignore
       
   285   adding ROOT
       
   286 
       
   287   $ touch A
       
   288   $ hg add A
       
   289   $ hg commit -m "Add A" --config devel.randomseed=42
       
   290   active topic 'panoramic-antelope' grew its first changeset
       
   291 
       
   292   $ hg up -r "desc(ROOT)"
       
   293   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   294 
       
   295   $ touch B
       
   296   $ hg add B
       
   297   $ hg commit -m "Add B" --config devel.randomseed=128
       
   298   active topic 'various-dove' grew its first changeset
       
   299 
       
   300 Test a merge too
       
   301 
       
   302   $ hg phase --public -r .
       
   303   active topic 'various-dove' is now empty
       
   304   $ hg up default
       
   305   clearing empty topic "various-dove"
       
   306   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   307   $ hg log -G
       
   308   @  changeset:   2:2d2acb6efad5
       
   309   |  tag:         tip
       
   310   |  parent:      0:ec1d2790416d
       
   311   |  user:        test
       
   312   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   313   |  summary:     Add B
       
   314   |
       
   315   | o  changeset:   1:d4b548f35972
       
   316   |/   topic:       panoramic-antelope
       
   317   |    user:        test
       
   318   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   319   |    summary:     Add A
       
   320   |
       
   321   o  changeset:   0:ec1d2790416d
       
   322      user:        test
       
   323      date:        Thu Jan 01 00:00:00 1970 +0000
       
   324      summary:     ROOT
       
   325   
       
   326   $ hg merge panoramic-antelope
       
   327   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   328   (branch merge, don't forget to commit)
       
   329   $ hg ci -m 'merge'  --config devel.randomseed=1337
       
   330   active topic 'omniscient-locust' grew its first changeset