tests/test-inhibit.t
branchmercurial-3.5
changeset 1606 c2739551ea4e
parent 1600 0d8973818980
parent 1604 61dd08f4dc62
child 1608 e359d33856c3
child 1698 dd6f090b7342
equal deleted inserted replaced
1600:0d8973818980 1606:c2739551ea4e
     1   $ cat >> $HGRCPATH <<EOF
       
     2   > [ui]
       
     3   > logtemplate = {rev}:{node|short} {desc}\n
       
     4   > [experimental]
       
     5   > prunestrip=True
       
     6   > evolution=createmarkers
       
     7   > [extensions]
       
     8   > rebase=
       
     9   > strip=
       
    10   > EOF
       
    11   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
       
    12   $ echo "directaccess=$(echo $(dirname $TESTDIR))/hgext/directaccess.py" >> $HGRCPATH
       
    13   $ echo "inhibit=$(echo $(dirname $TESTDIR))/hgext/inhibit.py" >> $HGRCPATH
       
    14   $ mkcommit() {
       
    15   >    echo "$1" > "$1"
       
    16   >    hg add "$1"
       
    17   >    hg ci -m "add $1"
       
    18   > }
       
    19 
       
    20   $ hg init inhibit
       
    21   $ cd inhibit
       
    22   $ mkcommit cA
       
    23   $ mkcommit cB
       
    24   $ mkcommit cC
       
    25   $ mkcommit cD
       
    26   $ hg up 'desc(cA)'
       
    27   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
    28   $ mkcommit cE
       
    29   created new head
       
    30   $ mkcommit cG
       
    31   $ mkcommit cH
       
    32   $ mkcommit cJ
       
    33   $ hg log -G
       
    34   @  7:18214586bf78 add cJ
       
    35   |
       
    36   o  6:cf5c4f4554ce add cH
       
    37   |
       
    38   o  5:5419eb264a33 add cG
       
    39   |
       
    40   o  4:98065434e5c6 add cE
       
    41   |
       
    42   | o  3:2db36d8066ff add cD
       
    43   | |
       
    44   | o  2:7df62a38b9bf add cC
       
    45   | |
       
    46   | o  1:02bcbc3f6e56 add cB
       
    47   |/
       
    48   o  0:54ccbc537fc2 add cA
       
    49   
       
    50 
       
    51 plain prune
       
    52 
       
    53   $ hg strip 1::
       
    54   3 changesets pruned
       
    55   $ hg log -G
       
    56   @  7:18214586bf78 add cJ
       
    57   |
       
    58   o  6:cf5c4f4554ce add cH
       
    59   |
       
    60   o  5:5419eb264a33 add cG
       
    61   |
       
    62   o  4:98065434e5c6 add cE
       
    63   |
       
    64   o  0:54ccbc537fc2 add cA
       
    65   
       
    66   $ hg debugobsinhibit --hidden 1::
       
    67   $ hg log -G
       
    68   @  7:18214586bf78 add cJ
       
    69   |
       
    70   o  6:cf5c4f4554ce add cH
       
    71   |
       
    72   o  5:5419eb264a33 add cG
       
    73   |
       
    74   o  4:98065434e5c6 add cE
       
    75   |
       
    76   | o  3:2db36d8066ff add cD
       
    77   | |
       
    78   | o  2:7df62a38b9bf add cC
       
    79   | |
       
    80   | o  1:02bcbc3f6e56 add cB
       
    81   |/
       
    82   o  0:54ccbc537fc2 add cA
       
    83   
       
    84   $ hg strip --hidden 1::
       
    85   3 changesets pruned
       
    86   $ hg log -G
       
    87   @  7:18214586bf78 add cJ
       
    88   |
       
    89   o  6:cf5c4f4554ce add cH
       
    90   |
       
    91   o  5:5419eb264a33 add cG
       
    92   |
       
    93   o  4:98065434e5c6 add cE
       
    94   |
       
    95   o  0:54ccbc537fc2 add cA
       
    96   
       
    97 
       
    98 after amend
       
    99 
       
   100   $ echo babar > cJ
       
   101   $ hg commit --amend
       
   102   $ hg log -G
       
   103   @  9:55c73a90e4b4 add cJ
       
   104   |
       
   105   o  6:cf5c4f4554ce add cH
       
   106   |
       
   107   o  5:5419eb264a33 add cG
       
   108   |
       
   109   o  4:98065434e5c6 add cE
       
   110   |
       
   111   o  0:54ccbc537fc2 add cA
       
   112   
       
   113   $ hg debugobsinhibit --hidden 18214586bf78
       
   114   $ hg log -G
       
   115   @  9:55c73a90e4b4 add cJ
       
   116   |
       
   117   | o  7:18214586bf78 add cJ
       
   118   |/
       
   119   o  6:cf5c4f4554ce add cH
       
   120   |
       
   121   o  5:5419eb264a33 add cG
       
   122   |
       
   123   o  4:98065434e5c6 add cE
       
   124   |
       
   125   o  0:54ccbc537fc2 add cA
       
   126   
       
   127 
       
   128 and no divergence
       
   129 
       
   130   $ hg summary
       
   131   parent: 9:55c73a90e4b4 tip
       
   132    add cJ
       
   133   branch: default
       
   134   commit: (clean)
       
   135   update: 1 new changesets, 2 branch heads (merge)
       
   136   phases: 6 draft
       
   137 
       
   138 check public revision got cleared
       
   139 (when adding the second inhibitor, the first one is removed because it is public)
       
   140 
       
   141   $ wc -m .hg/store/obsinhibit | sed -e 's/^[ \t]*//'
       
   142   20 .hg/store/obsinhibit
       
   143   $ hg strip 7
       
   144   1 changesets pruned
       
   145   $ hg debugobsinhibit --hidden 18214586bf78
       
   146   $ wc -m .hg/store/obsinhibit | sed -e 's/^[ \t]*//'
       
   147   20 .hg/store/obsinhibit
       
   148   $ hg log -G
       
   149   @  9:55c73a90e4b4 add cJ
       
   150   |
       
   151   | o  7:18214586bf78 add cJ
       
   152   |/
       
   153   o  6:cf5c4f4554ce add cH
       
   154   |
       
   155   o  5:5419eb264a33 add cG
       
   156   |
       
   157   o  4:98065434e5c6 add cE
       
   158   |
       
   159   o  0:54ccbc537fc2 add cA
       
   160   
       
   161   $ hg phase --public 7
       
   162   $ hg strip 9
       
   163   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   164   working directory now at cf5c4f4554ce
       
   165   1 changesets pruned
       
   166   $ hg log -G
       
   167   o  7:18214586bf78 add cJ
       
   168   |
       
   169   @  6:cf5c4f4554ce add cH
       
   170   |
       
   171   o  5:5419eb264a33 add cG
       
   172   |
       
   173   o  4:98065434e5c6 add cE
       
   174   |
       
   175   o  0:54ccbc537fc2 add cA
       
   176   
       
   177   $ hg debugobsinhibit --hidden 55c73a90e4b4
       
   178   $ wc -m .hg/store/obsinhibit | sed -e 's/^[ \t]*//'
       
   179   20 .hg/store/obsinhibit
       
   180   $ hg log -G
       
   181   o  9:55c73a90e4b4 add cJ
       
   182   |
       
   183   | o  7:18214586bf78 add cJ
       
   184   |/
       
   185   @  6:cf5c4f4554ce add cH
       
   186   |
       
   187   o  5:5419eb264a33 add cG
       
   188   |
       
   189   o  4:98065434e5c6 add cE
       
   190   |
       
   191   o  0:54ccbc537fc2 add cA
       
   192   
       
   193 Update should inhibit all related unstable commits
       
   194 
       
   195   $ hg update 2 --hidden
       
   196   2 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
   197   $ hg log -G
       
   198   o  9:55c73a90e4b4 add cJ
       
   199   |
       
   200   | o  7:18214586bf78 add cJ
       
   201   |/
       
   202   o  6:cf5c4f4554ce add cH
       
   203   |
       
   204   o  5:5419eb264a33 add cG
       
   205   |
       
   206   o  4:98065434e5c6 add cE
       
   207   |
       
   208   | @  2:7df62a38b9bf add cC
       
   209   | |
       
   210   | o  1:02bcbc3f6e56 add cB
       
   211   |/
       
   212   o  0:54ccbc537fc2 add cA
       
   213   
       
   214 
       
   215   $ hg update 9
       
   216   4 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   217   $ hg log -G
       
   218   @  9:55c73a90e4b4 add cJ
       
   219   |
       
   220   | o  7:18214586bf78 add cJ
       
   221   |/
       
   222   o  6:cf5c4f4554ce add cH
       
   223   |
       
   224   o  5:5419eb264a33 add cG
       
   225   |
       
   226   o  4:98065434e5c6 add cE
       
   227   |
       
   228   | o  2:7df62a38b9bf add cC
       
   229   | |
       
   230   | o  1:02bcbc3f6e56 add cB
       
   231   |/
       
   232   o  0:54ccbc537fc2 add cA
       
   233   
       
   234   $ hg strip --hidden 1::
       
   235   3 changesets pruned
       
   236   $ hg log -G
       
   237   @  9:55c73a90e4b4 add cJ
       
   238   |
       
   239   | o  7:18214586bf78 add cJ
       
   240   |/
       
   241   o  6:cf5c4f4554ce add cH
       
   242   |
       
   243   o  5:5419eb264a33 add cG
       
   244   |
       
   245   o  4:98065434e5c6 add cE
       
   246   |
       
   247   o  0:54ccbc537fc2 add cA
       
   248   
       
   249 
       
   250 Bookmark should inhibit all related unstable commits
       
   251   $ hg bookmark -r 2 book1  --hidden
       
   252   $ hg log -G
       
   253   @  9:55c73a90e4b4 add cJ
       
   254   |
       
   255   | o  7:18214586bf78 add cJ
       
   256   |/
       
   257   o  6:cf5c4f4554ce add cH
       
   258   |
       
   259   o  5:5419eb264a33 add cG
       
   260   |
       
   261   o  4:98065434e5c6 add cE
       
   262   |
       
   263   | o  2:7df62a38b9bf add cC
       
   264   | |
       
   265   | o  1:02bcbc3f6e56 add cB
       
   266   |/
       
   267   o  0:54ccbc537fc2 add cA
       
   268   
       
   269 
       
   270 Removing a bookmark with bookmark -D should prune the changes underneath
       
   271 that are not reachable from another bookmark or head
       
   272 
       
   273   $ hg bookmark -r 1 book2
       
   274   $ hg bookmark -D book1  --config experimental.evolution=createmarkers #--config to make sure prune is not registered as a command.
       
   275   bookmark 'book1' deleted
       
   276   1 changesets pruned
       
   277   $ hg log -G
       
   278   @  9:55c73a90e4b4 add cJ
       
   279   |
       
   280   | o  7:18214586bf78 add cJ
       
   281   |/
       
   282   o  6:cf5c4f4554ce add cH
       
   283   |
       
   284   o  5:5419eb264a33 add cG
       
   285   |
       
   286   o  4:98065434e5c6 add cE
       
   287   |
       
   288   | o  1:02bcbc3f6e56 add cB
       
   289   |/
       
   290   o  0:54ccbc537fc2 add cA
       
   291   
       
   292   $ hg bookmark -D book2
       
   293   bookmark 'book2' deleted
       
   294   1 changesets pruned
       
   295   $ hg log -G
       
   296   @  9:55c73a90e4b4 add cJ
       
   297   |
       
   298   | o  7:18214586bf78 add cJ
       
   299   |/
       
   300   o  6:cf5c4f4554ce add cH
       
   301   |
       
   302   o  5:5419eb264a33 add cG
       
   303   |
       
   304   o  4:98065434e5c6 add cE
       
   305   |
       
   306   o  0:54ccbc537fc2 add cA
       
   307   
       
   308 Test that direct access make changesets visible
       
   309 
       
   310   $ hg export 2db36d8066ff 02bcbc3f6e56
       
   311   # HG changeset patch
       
   312   # User test
       
   313   # Date 0 0
       
   314   #      Thu Jan 01 00:00:00 1970 +0000
       
   315   # Node ID 2db36d8066ff50e8be3d3e6c2da1ebc0a8381d82
       
   316   # Parent  7df62a38b9bf9daf968de235043ba88a8ef43393
       
   317   add cD
       
   318   
       
   319   diff -r 7df62a38b9bf -r 2db36d8066ff cD
       
   320   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
   321   +++ b/cD	Thu Jan 01 00:00:00 1970 +0000
       
   322   @@ -0,0 +1,1 @@
       
   323   +cD
       
   324   # HG changeset patch
       
   325   # User test
       
   326   # Date 0 0
       
   327   #      Thu Jan 01 00:00:00 1970 +0000
       
   328   # Node ID 02bcbc3f6e56fb2928efec2c6e24472720bf5511
       
   329   # Parent  54ccbc537fc2d6845a5d61337c1cfb80d1d2815e
       
   330   add cB
       
   331   
       
   332   diff -r 54ccbc537fc2 -r 02bcbc3f6e56 cB
       
   333   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
   334   +++ b/cB	Thu Jan 01 00:00:00 1970 +0000
       
   335   @@ -0,0 +1,1 @@
       
   336   +cB
       
   337 
       
   338 But only with hash
       
   339 
       
   340   $ hg export 2db36d8066ff::
       
   341   # HG changeset patch
       
   342   # User test
       
   343   # Date 0 0
       
   344   #      Thu Jan 01 00:00:00 1970 +0000
       
   345   # Node ID 2db36d8066ff50e8be3d3e6c2da1ebc0a8381d82
       
   346   # Parent  7df62a38b9bf9daf968de235043ba88a8ef43393
       
   347   add cD
       
   348   
       
   349   diff -r 7df62a38b9bf -r 2db36d8066ff cD
       
   350   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
   351   +++ b/cD	Thu Jan 01 00:00:00 1970 +0000
       
   352   @@ -0,0 +1,1 @@
       
   353   +cD
       
   354 
       
   355   $ hg export 1 3
       
   356   abort: hidden revision '1'!
       
   357   (use --hidden to access hidden revisions)
       
   358   [255]
       
   359 
       
   360 
       
   361 Test directaccess in a larger revset
       
   362 
       
   363   $ hg log -r '. + .^ + 2db36d8066ff' -T '{node|short}\n'
       
   364   55c73a90e4b4
       
   365   cf5c4f4554ce
       
   366   2db36d8066ff
       
   367 
       
   368 With severals hidden sha, rebase of one hidden stack onto another one:
       
   369   $ hg update -C 0
       
   370   0 files updated, 0 files merged, 4 files removed, 0 files unresolved
       
   371   $ mkcommit cK
       
   372   created new head
       
   373   $ mkcommit cL
       
   374   $ hg update -C 9
       
   375   4 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   376   $ hg log -G
       
   377   o  11:53a94305e133 add cL
       
   378   |
       
   379   o  10:ad78ff7d621f add cK
       
   380   |
       
   381   | @  9:55c73a90e4b4 add cJ
       
   382   | |
       
   383   | | o  7:18214586bf78 add cJ
       
   384   | |/
       
   385   | o  6:cf5c4f4554ce add cH
       
   386   | |
       
   387   | o  5:5419eb264a33 add cG
       
   388   | |
       
   389   | o  4:98065434e5c6 add cE
       
   390   |/
       
   391   o  0:54ccbc537fc2 add cA
       
   392   
       
   393   $ hg strip --hidden 10:
       
   394   2 changesets pruned
       
   395   $ hg log -G
       
   396   @  9:55c73a90e4b4 add cJ
       
   397   |
       
   398   | o  7:18214586bf78 add cJ
       
   399   |/
       
   400   o  6:cf5c4f4554ce add cH
       
   401   |
       
   402   o  5:5419eb264a33 add cG
       
   403   |
       
   404   o  4:98065434e5c6 add cE
       
   405   |
       
   406   o  0:54ccbc537fc2 add cA
       
   407   
       
   408   $ hg rebase -s 10 -d 3 
       
   409   abort: hidden revision '3'!
       
   410   (use --hidden to access hidden revisions)
       
   411   [255]
       
   412   $ hg rebase -r ad78ff7d621f -r 53a94305e133 -d  2db36d8066ff
       
   413   Warning: accessing hidden changesets 2db36d8066ff for write operation
       
   414   Warning: accessing hidden changesets ad78ff7d621f for write operation
       
   415   Warning: accessing hidden changesets 53a94305e133 for write operation
       
   416   rebasing 10:ad78ff7d621f "add cK"
       
   417   rebasing 11:53a94305e133 "add cL"
       
   418   $ hg log -G
       
   419   o  13:2f7b7704d714 add cL
       
   420   |
       
   421   o  12:fe1634cbe235 add cK
       
   422   |
       
   423   | @  9:55c73a90e4b4 add cJ
       
   424   | |
       
   425   | | o  7:18214586bf78 add cJ
       
   426   | |/
       
   427   | o  6:cf5c4f4554ce add cH
       
   428   | |
       
   429   | o  5:5419eb264a33 add cG
       
   430   | |
       
   431   | o  4:98065434e5c6 add cE
       
   432   | |
       
   433   o |  3:2db36d8066ff add cD
       
   434   | |
       
   435   o |  2:7df62a38b9bf add cC
       
   436   | |
       
   437   o |  1:02bcbc3f6e56 add cB
       
   438   |/
       
   439   o  0:54ccbc537fc2 add cA
       
   440   
       
   441 Check that amending in the middle of a stack does not show obsolete revs
       
   442 Since we are doing operation in the middle of the stack we cannot just
       
   443 have createmarkers as we are creating instability
       
   444 
       
   445   $ cat >> $HGRCPATH <<EOF
       
   446   > [experimental]
       
   447   > evolution=all
       
   448   > EOF
       
   449 
       
   450   $ hg strip --hidden 1::
       
   451   5 changesets pruned
       
   452   $ hg log -G
       
   453   @  9:55c73a90e4b4 add cJ
       
   454   |
       
   455   | o  7:18214586bf78 add cJ
       
   456   |/
       
   457   o  6:cf5c4f4554ce add cH
       
   458   |
       
   459   o  5:5419eb264a33 add cG
       
   460   |
       
   461   o  4:98065434e5c6 add cE
       
   462   |
       
   463   o  0:54ccbc537fc2 add cA
       
   464   
       
   465   $ hg up 7
       
   466   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   467   $ mkcommit cL
       
   468   $ mkcommit cM
       
   469   $ mkcommit cN
       
   470   $ hg log -G
       
   471   @  16:a438c045eb37 add cN
       
   472   |
       
   473   o  15:2d66e189f5b5 add cM
       
   474   |
       
   475   o  14:d66ccb8c5871 add cL
       
   476   |
       
   477   | o  9:55c73a90e4b4 add cJ
       
   478   | |
       
   479   o |  7:18214586bf78 add cJ
       
   480   |/
       
   481   o  6:cf5c4f4554ce add cH
       
   482   |
       
   483   o  5:5419eb264a33 add cG
       
   484   |
       
   485   o  4:98065434e5c6 add cE
       
   486   |
       
   487   o  0:54ccbc537fc2 add cA
       
   488   
       
   489   $ hg up 15
       
   490   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   491   $ echo "mmm" >> cM
       
   492   $ hg amend
       
   493   $ hg log -G
       
   494   @  18:210589181b14 add cM
       
   495   |
       
   496   | o  16:a438c045eb37 add cN
       
   497   | |
       
   498   | o  15:2d66e189f5b5 add cM
       
   499   |/
       
   500   o  14:d66ccb8c5871 add cL
       
   501   |
       
   502   | o  9:55c73a90e4b4 add cJ
       
   503   | |
       
   504   o |  7:18214586bf78 add cJ
       
   505   |/
       
   506   o  6:cf5c4f4554ce add cH
       
   507   |
       
   508   o  5:5419eb264a33 add cG
       
   509   |
       
   510   o  4:98065434e5c6 add cE
       
   511   |
       
   512   o  0:54ccbc537fc2 add cA
       
   513   
       
   514 Check that rebasing a commit twice makes the commit visible again
       
   515 
       
   516   $ hg rebase -d 18 -r 16 --keep
       
   517   rebasing 16:a438c045eb37 "add cN"
       
   518   $ hg log -r 14:: -G
       
   519   o  19:104eed5354c7 add cN
       
   520   |
       
   521   @  18:210589181b14 add cM
       
   522   |
       
   523   | o  16:a438c045eb37 add cN
       
   524   | |
       
   525   | o  15:2d66e189f5b5 add cM
       
   526   |/
       
   527   o  14:d66ccb8c5871 add cL
       
   528   |
       
   529   $ hg strip -r 104eed5354c7
       
   530   1 changesets pruned
       
   531   $ hg rebase -d 18 -r 16 --keep
       
   532   rebasing 16:a438c045eb37 "add cN"
       
   533   $ hg log -r 14:: -G
       
   534   o  19:104eed5354c7 add cN
       
   535   |
       
   536   @  18:210589181b14 add cM
       
   537   |
       
   538   | o  16:a438c045eb37 add cN
       
   539   | |
       
   540   | o  15:2d66e189f5b5 add cM
       
   541   |/
       
   542   o  14:d66ccb8c5871 add cL
       
   543   |
       
   544 
       
   545 Test prunestrip
       
   546 
       
   547   $ hg book foo -r 104eed5354c7
       
   548   $ hg strip -r 210589181b14
       
   549   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   550   working directory now at d66ccb8c5871
       
   551   2 changesets pruned
       
   552   $ hg log -r 14:: -G -T '{rev}:{node|short} {desc|firstline} {bookmarks}\n'
       
   553   o  16:a438c045eb37 add cN
       
   554   |
       
   555   o  15:2d66e189f5b5 add cM
       
   556   |
       
   557   @  14:d66ccb8c5871 add cL foo
       
   558   |
       
   559 
       
   560 Check that --hidden used with inhibit does not hide every obsolete commit
       
   561 We show the log before and after a log -G --hidden, they should be the same
       
   562   $ hg log -G
       
   563   o  16:a438c045eb37 add cN
       
   564   |
       
   565   o  15:2d66e189f5b5 add cM
       
   566   |
       
   567   @  14:d66ccb8c5871 add cL
       
   568   |
       
   569   | o  9:55c73a90e4b4 add cJ
       
   570   | |
       
   571   o |  7:18214586bf78 add cJ
       
   572   |/
       
   573   o  6:cf5c4f4554ce add cH
       
   574   |
       
   575   o  5:5419eb264a33 add cG
       
   576   |
       
   577   o  4:98065434e5c6 add cE
       
   578   |
       
   579   o  0:54ccbc537fc2 add cA
       
   580   
       
   581   $ hg log -G --hidden
       
   582   x  19:104eed5354c7 add cN
       
   583   |
       
   584   x  18:210589181b14 add cM
       
   585   |
       
   586   | x  17:b3c3274523f9 temporary amend commit for 2d66e189f5b5
       
   587   | |
       
   588   | | o  16:a438c045eb37 add cN
       
   589   | |/
       
   590   | o  15:2d66e189f5b5 add cM
       
   591   |/
       
   592   @  14:d66ccb8c5871 add cL
       
   593   |
       
   594   | x  13:2f7b7704d714 add cL
       
   595   | |
       
   596   | x  12:fe1634cbe235 add cK
       
   597   | |
       
   598   | | x  11:53a94305e133 add cL
       
   599   | | |
       
   600   | | x  10:ad78ff7d621f add cK
       
   601   | | |
       
   602   | | | o  9:55c73a90e4b4 add cJ
       
   603   | | | |
       
   604   +-------x  8:e84f73d9ad36 temporary amend commit for 18214586bf78
       
   605   | | | |
       
   606   o-----+  7:18214586bf78 add cJ
       
   607    / / /
       
   608   | | o  6:cf5c4f4554ce add cH
       
   609   | | |
       
   610   | | o  5:5419eb264a33 add cG
       
   611   | | |
       
   612   | | o  4:98065434e5c6 add cE
       
   613   | |/
       
   614   x |  3:2db36d8066ff add cD
       
   615   | |
       
   616   x |  2:7df62a38b9bf add cC
       
   617   | |
       
   618   x |  1:02bcbc3f6e56 add cB
       
   619   |/
       
   620   o  0:54ccbc537fc2 add cA
       
   621   
       
   622 
       
   623   $ hg log -G
       
   624   o  16:a438c045eb37 add cN
       
   625   |
       
   626   o  15:2d66e189f5b5 add cM
       
   627   |
       
   628   @  14:d66ccb8c5871 add cL
       
   629   |
       
   630   | o  9:55c73a90e4b4 add cJ
       
   631   | |
       
   632   o |  7:18214586bf78 add cJ
       
   633   |/
       
   634   o  6:cf5c4f4554ce add cH
       
   635   |
       
   636   o  5:5419eb264a33 add cG
       
   637   |
       
   638   o  4:98065434e5c6 add cE
       
   639   |
       
   640   o  0:54ccbc537fc2 add cA
       
   641   
       
   642  
       
   643 check that pruning and inhibited node does not confuse anything
       
   644 
       
   645   $ hg up --hidden 210589181b14
       
   646   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   647   $ hg strip --bundle 210589181b14
       
   648   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   649   saved backup bundle to $TESTTMP/inhibit/.hg/strip-backup/210589181b14-e09c7b88-backup.hg (glob)
       
   650   $ hg unbundle .hg/strip-backup/210589181b14-e09c7b88-backup.hg # restore state
       
   651   adding changesets
       
   652   adding manifests
       
   653   adding file changes
       
   654   added 2 changesets with 1 changes to 2 files (+1 heads)
       
   655   (run 'hg heads' to see heads, 'hg merge' to merge)
       
   656 
       
   657  Only allow direct access and check that evolve works like before
       
   658 (also disable evolve commands to avoid hint about using evolve)
       
   659   $ cat >> $HGRCPATH <<EOF
       
   660   > [extensions]
       
   661   > inhibit=!
       
   662   > [experimental]
       
   663   > evolution=createmarkers
       
   664   > EOF
       
   665 
       
   666   $ hg up 15
       
   667   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   668   working directory parent is obsolete!
       
   669   $ cat >> $HGRCPATH <<EOF
       
   670   > [experimental]
       
   671   > evolution=all
       
   672   > EOF
       
   673   $ echo "CM" > cM
       
   674   $ hg amend
       
   675   $ hg log -G
       
   676   @  21:721c3c279519 add cM
       
   677   |
       
   678   | o  16:a438c045eb37 add cN
       
   679   | |
       
   680   | x  15:2d66e189f5b5 add cM
       
   681   |/
       
   682   o  14:d66ccb8c5871 add cL
       
   683   |
       
   684   o  7:18214586bf78 add cJ
       
   685   |
       
   686   o  6:cf5c4f4554ce add cH
       
   687   |
       
   688   o  5:5419eb264a33 add cG
       
   689   |
       
   690   o  4:98065434e5c6 add cE
       
   691   |
       
   692   o  0:54ccbc537fc2 add cA
       
   693   
       
   694   $ cat >> $HGRCPATH <<EOF
       
   695   > [extensions]
       
   696   > EOF
       
   697   $ echo "inhibit=$(echo $(dirname $TESTDIR))/hgext/inhibit.py" >> $HGRCPATH
       
   698 
       
   699 Empty commit
       
   700   $ hg amend
       
   701   nothing changed
       
   702   [1]
       
   703 
       
   704 Directaccess should load after some extensions precised in the conf
       
   705 With no extension specified:
       
   706 
       
   707   $ cat >$TESTTMP/test_extension.py  << EOF
       
   708   > from mercurial import extensions
       
   709   > def uisetup(ui):
       
   710   >   print extensions._order
       
   711   > EOF
       
   712   $ cat >> $HGRCPATH << EOF
       
   713   > [extensions]
       
   714   > testextension=$TESTTMP/test_extension.py
       
   715   > EOF
       
   716   $ hg id
       
   717   ['rebase', 'strip', 'evolve', 'directaccess', 'inhibit', 'testextension']
       
   718   721c3c279519 tip
       
   719 
       
   720 With test_extension specified:
       
   721   $ cat >> $HGRCPATH << EOF
       
   722   > [directaccess]
       
   723   > loadsafter=testextension
       
   724   > EOF
       
   725   $ hg id
       
   726   ['rebase', 'strip', 'evolve', 'inhibit', 'testextension', 'directaccess']
       
   727   721c3c279519 tip
       
   728 
       
   729 Inhibit should not work without directaccess
       
   730   $ cat >> $HGRCPATH <<EOF
       
   731   > [extensions]
       
   732   > directaccess=!
       
   733   > testextension=!
       
   734   > EOF
       
   735   $ hg up .
       
   736   cannot use inhibit without the direct access extension
       
   737   (please enable it or inhibit won't work)
       
   738   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   739   $ echo "directaccess=$(echo $(dirname $TESTDIR))/hgext/directaccess.py" >> $HGRCPATH
       
   740   $ cd ..
       
   741 
       
   742 
       
   743 hg push should not allow directaccess unless forced with --hidden
       
   744 We copy the inhibhit repo to inhibit2 and make some changes to push to inhibit
       
   745 
       
   746   $ cp -r inhibit inhibit2
       
   747   $ pwd=$(pwd)
       
   748   $ cd inhibit
       
   749   $ mkcommit pk
       
   750   $ hg id
       
   751   003a4735afde tip
       
   752   $ echo "OO" > pk
       
   753   $ hg amend
       
   754   $ hg id
       
   755   71eb4f100663 tip
       
   756 
       
   757 Hidden commits cannot be pushed without --hidden
       
   758   $ hg push -r 003a4735afde $pwd/inhibit2
       
   759   pushing to $TESTTMP/inhibit2
       
   760   abort: hidden revision '003a4735afde'!
       
   761   (use --hidden to access hidden revisions)
       
   762   [255]
       
   763 
       
   764 Visible commits can still be pushed
       
   765   $ hg push -r 71eb4f100663 $pwd/inhibit2
       
   766   pushing to $TESTTMP/inhibit2
       
   767   searching for changes
       
   768   adding changesets
       
   769   adding manifests
       
   770   adding file changes
       
   771   added 1 changesets with 1 changes to 1 files
       
   772   2 new obsolescence markers
       
   773 
       
   774 Pulling from a inhibit repo to a non-inhibit repo should work
       
   775 
       
   776   $ cd ..
       
   777   $ hg clone -q inhibit not-inhibit
       
   778   $ cat >> not-inhibit/.hg/hgrc <<EOF
       
   779   > [extensions]
       
   780   > inhibit=!
       
   781   > directaccess=!
       
   782   > evolve=!
       
   783   > EOF
       
   784   $ cd not-inhibit
       
   785   $ hg book -d foo
       
   786   $ hg pull
       
   787   pulling from $TESTTMP/inhibit
       
   788   searching for changes
       
   789   no changes found
       
   790   adding remote bookmark foo