tests/test-pullling-to-general-delta.t
branchstable
changeset 50355 0232571255d3
child 50690 ae74a60ad583
equal deleted inserted replaced
50354:ca1522fe4ec8 50355:0232571255d3
       
     1 ============================================================================
       
     2 Pulling from modern to a non-general delta target (and other related checks)
       
     3 ============================================================================
       
     4 
       
     5 There is various issue that can arise when we update the code with modern
       
     6 storage in mind while working on delta processing. So this file is meant for
       
     7 various scenario that might break in the future or have break in the past.
       
     8 
       
     9 Setup
       
    10 =====
       
    11 
       
    12 Create a modern server with an older clone
       
    13 
       
    14   $ cat << EOF >> $HGRCPATH
       
    15   > [command-templates]
       
    16   > log = "{desc} {tags}\n"
       
    17   > EOF
       
    18 
       
    19   $ hg init server
       
    20 
       
    21   $ hg clone --quiet --pull server client --config format.usegeneraldelta=no
       
    22   $ hg debugformat -R client | grep generaldelta
       
    23   generaldelta:        no
       
    24 
       
    25 Create some complexe history
       
    26 
       
    27   $ cd server
       
    28   $ hg debugbuilddag -n '.+3:a$.+5:b/a:k$.+7:c/b:l$.+6:d/a:m<k+6/l+1/m'
       
    29   $ hg log -G
       
    30   o    r36 tip
       
    31   |\
       
    32   | o  r35
       
    33   | |
       
    34   | o    r34
       
    35   | |\
       
    36   | | o  r33
       
    37   | | |
       
    38   | | o  r32
       
    39   | | |
       
    40   | | o  r31
       
    41   | | |
       
    42   | | o  r30
       
    43   | | |
       
    44   | | o  r29
       
    45   | | |
       
    46   | | o  r28
       
    47   | | |
       
    48   o | |    r27 m
       
    49   |\ \ \
       
    50   | o | |  r26 d
       
    51   | | | |
       
    52   | o | |  r25
       
    53   | | | |
       
    54   | o | |  r24
       
    55   | | | |
       
    56   | o | |  r23
       
    57   | | | |
       
    58   | o | |  r22
       
    59   | | | |
       
    60   | o | |  r21
       
    61   | | | |
       
    62   | o | |  r20
       
    63   |  / /
       
    64   | o |    r19 l
       
    65   | |\ \
       
    66   | | o |  r18 c
       
    67   | | | |
       
    68   | | o |  r17
       
    69   | | | |
       
    70   | | o |  r16
       
    71   | | | |
       
    72   | | o |  r15
       
    73   | | | |
       
    74   | | o |  r14
       
    75   | | | |
       
    76   | | o |  r13
       
    77   | | | |
       
    78   | | o |  r12
       
    79   | | | |
       
    80   | | o |  r11
       
    81   | |  /
       
    82   +---o  r10 k
       
    83   | |/
       
    84   | o  r9 b
       
    85   | |
       
    86   | o  r8
       
    87   | |
       
    88   | o  r7
       
    89   | |
       
    90   | o  r6
       
    91   | |
       
    92   | o  r5
       
    93   | |
       
    94   | o  r4
       
    95   |
       
    96   o  r3 a
       
    97   |
       
    98   o  r2
       
    99   |
       
   100   o  r1
       
   101   |
       
   102   o  r0
       
   103   
       
   104   $ cd ..
       
   105 
       
   106 
       
   107 Pull it in the client
       
   108 =====================
       
   109 
       
   110 
       
   111 pull with default value
       
   112 -----------------------
       
   113 
       
   114   $ cp -R client client-simple-pull
       
   115   $ hg -R client-simple-pull pull
       
   116   pulling from $TESTTMP/server
       
   117   requesting all changes
       
   118   adding changesets
       
   119   adding manifests
       
   120   adding file changes
       
   121   added 37 changesets with 37 changes to 37 files
       
   122   new changesets 61246295ee1e:b4b117cbbcf3
       
   123   (run 'hg update' to get a working copy)
       
   124   $ hg -R client-simple-pull verify
       
   125   checking changesets
       
   126   checking manifests
       
   127   crosschecking files in changesets and manifests
       
   128   checking files
       
   129   checking dirstate
       
   130   checked 37 changesets with 37 changes to 37 files
       
   131 
       
   132 
       
   133 pull with "no-reuse" policy
       
   134 ---------------------------
       
   135 
       
   136   $ cp -R client client-no-reuse
       
   137   $ hg -R client-no-reuse pull --config paths.default:pulled-delta-reuse-policy=no-reuse
       
   138   pulling from $TESTTMP/server
       
   139   requesting all changes
       
   140   adding changesets
       
   141   adding manifests
       
   142   adding file changes
       
   143   added 37 changesets with 37 changes to 37 files
       
   144   new changesets 61246295ee1e:b4b117cbbcf3
       
   145   (run 'hg update' to get a working copy)
       
   146   $ hg -R client-no-reuse verify
       
   147   checking changesets
       
   148   checking manifests
       
   149   crosschecking files in changesets and manifests
       
   150   checking files
       
   151   checking dirstate
       
   152   checked 37 changesets with 37 changes to 37 files
       
   153 
       
   154 
       
   155 pull with "try-base" policy
       
   156 ---------------------------
       
   157 
       
   158   $ cp -R client client-try-base
       
   159   $ hg -R client-try-base pull --config paths.default:pulled-delta-reuse-policy=try-base
       
   160   pulling from $TESTTMP/server
       
   161   requesting all changes
       
   162   adding changesets
       
   163   adding manifests
       
   164   adding file changes
       
   165   added 37 changesets with 37 changes to 37 files
       
   166   new changesets 61246295ee1e:b4b117cbbcf3
       
   167   (run 'hg update' to get a working copy)
       
   168   $ hg -R client-try-base verify
       
   169   checking changesets
       
   170   checking manifests
       
   171   crosschecking files in changesets and manifests
       
   172   checking files
       
   173   checking dirstate
       
   174   checked 37 changesets with 37 changes to 37 files
       
   175 
       
   176 
       
   177 pull with "forced" policy
       
   178 -------------------------
       
   179 
       
   180   $ cp -R client client-forced
       
   181   $ hg -R client-forced pull --config paths.default:pulled-delta-reuse-policy=forced
       
   182   pulling from $TESTTMP/server
       
   183   requesting all changes
       
   184   adding changesets
       
   185   adding manifests
       
   186   adding file changes
       
   187   added 37 changesets with 37 changes to 37 files
       
   188   new changesets 61246295ee1e:b4b117cbbcf3
       
   189   (run 'hg update' to get a working copy)
       
   190   $ hg -R client-forced verify
       
   191   checking changesets
       
   192   checking manifests
       
   193   crosschecking files in changesets and manifests
       
   194   checking files
       
   195   checking dirstate
       
   196   checked 37 changesets with 37 changes to 37 files