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