tests/test-issue3084.t
branchstable
changeset 23417 442bb30171db
parent 22589 9ab18a912c44
child 23418 c90d9ab6777a
equal deleted inserted replaced
23416:53a65929ef1f 23417:442bb30171db
     7 
     7 
     8   $ hg init test
     8   $ hg init test
     9   $ cd test
     9   $ cd test
    10   $ echo "root" > root
    10   $ echo "root" > root
    11   $ hg add root
    11   $ hg add root
    12   $ hg commit -m "Root commit"
    12   $ hg commit -m "Root commit" --config extensions.largefiles=!
       
    13 
       
    14 Ensure that .hg/largefiles isn't created before largefiles are added
       
    15 #if unix-permissions
       
    16   $ chmod 555 .hg
       
    17 #endif
       
    18   $ hg status
       
    19 #if unix-permissions
       
    20   $ chmod 755 .hg
       
    21 #endif
       
    22 
       
    23   $ test -f .hg/largefiles
       
    24   [1]
    13 
    25 
    14   $ echo "large" > foo
    26   $ echo "large" > foo
    15   $ hg add --large foo
    27   $ hg add --large foo
    16   $ hg commit -m "Add foo as a largefile"
    28   $ hg commit -m "Add foo as a largefile"
    17 
    29 
   143   $ cd ..
   155   $ cd ..
   144 
   156 
   145 
   157 
   146 Systematic testing of merges involving largefiles:
   158 Systematic testing of merges involving largefiles:
   147 
   159 
   148 Ancestor: normal  Parent: normal=  Parent: large   result: large
   160 Ancestor: normal  Parent: normal-id  Parent: large   result: large
   149 Ancestor: normal  Parent: normal2  Parent: large   result: ?
   161 Ancestor: normal  Parent: normal2    Parent: large   result: ?
   150 Ancestor: large   Parent: large=   Parent: normal  result: normal
   162 Ancestor: large   Parent: large-id   Parent: normal  result: normal
   151 Ancestor: large   Parent: large2   Parent: normal  result: ?
   163 Ancestor: large   Parent: large2     Parent: normal  result: ?
   152 
   164 
   153 All cases should try merging both ways.
   165 All cases should try merging both ways.
   154 "=" means same file content.
       
   155 
   166 
   156 Prepare test repo:
   167 Prepare test repo:
   157 
   168 
   158   $ hg init merges
   169   $ hg init merges
   159   $ cd merges
   170   $ cd merges
   160   $ touch f1
   171 
   161   $ hg ci -Aqm "0-root" --config extensions.largefiles=!
   172 prepare cases with "normal" ancestor:
   162 
   173 
   163 Ensure that .hg/largefiles isn't created before largefiles are added
   174   $ hg up -qr null
   164 #if unix-permissions
       
   165   $ chmod 555 .hg
       
   166 #endif
       
   167   $ hg status
       
   168 #if unix-permissions
       
   169   $ chmod 755 .hg
       
   170 #endif
       
   171 
       
   172   $ test -f .hg/largefiles
       
   173   [1]
       
   174 
       
   175 ancestor is "normal":
       
   176   $ echo normal > f
   175   $ echo normal > f
   177   $ hg ci -Aqm "1-normal-ancestor"
   176   $ hg ci -Aqm "normal-ancestor"
       
   177   $ hg tag -l "normal-ancestor"
   178   $ touch f2
   178   $ touch f2
   179   $ hg ci -Aqm "2-normal-unchanged"
   179   $ hg ci -Aqm "normal-id"
   180   $ hg tag -l "normal="
   180   $ hg tag -l "normal-id"
   181   $ echo normal2 > f
   181   $ echo normal2 > f
   182   $ hg ci -m "3-normal2"
   182   $ hg ci -m "normal2"
   183   $ hg tag -l "normal2"
   183   $ hg tag -l "normal2"
   184   $ hg up -qr 1
   184   $ hg up -qr "normal-ancestor"
   185   $ hg rm f
   185   $ hg rm f
   186   $ echo large > f
   186   $ echo large > f
   187   $ hg add --large f
   187   $ hg add --large f
   188   $ hg ci -qm "4-normal-to-large"
   188   $ hg ci -qm "large"
   189   $ hg tag -l "large"
   189   $ hg tag -l "large"
   190 
   190 
       
   191 prepare cases with "large" ancestor:
       
   192 
   191   $ hg up -qr null
   193   $ hg up -qr null
   192 
       
   193 ancestor is "large":
       
   194   $ echo large > f
   194   $ echo large > f
   195   $ hg add --large f
   195   $ hg add --large f
   196   $ hg ci -qm "5-large-ancestor"
   196   $ hg ci -qm "large-ancestor"
       
   197   $ hg tag -l "large-ancestor"
   197   $ touch f2
   198   $ touch f2
   198   $ hg ci -Aqm "6-large-unchanged"
   199   $ hg ci -Aqm "large-id"
   199   $ hg tag -l "large="
   200   $ hg tag -l "large-id"
   200   $ echo large2 > f
   201   $ echo large2 > f
   201   $ hg ci -m "7-large2"
   202   $ hg ci -m "large2"
   202   $ hg tag -l "large2"
   203   $ hg tag -l "large2"
   203   $ hg up -qr 5
   204   $ hg up -qr "large-ancestor"
   204   $ hg rm f
   205   $ hg rm f
   205   $ echo normal > f
   206   $ echo normal > f
   206   $ hg ci -qAm "8-large-to-normal"
   207   $ hg ci -qAm "normal"
   207   $ hg tag -l "normal"
   208   $ hg tag -l "normal"
   208 
   209 
   209 Ancestor: normal  Parent: normal=  Parent: large   result: large
   210   $ hg log -GT '{tags}'
   210 
   211   @  normal tip
   211   $ hg up -Cqr normal=
   212   |
       
   213   | o  large2
       
   214   | |
       
   215   | o  large-id
       
   216   |/
       
   217   o  large-ancestor
       
   218   
       
   219   o  large
       
   220   |
       
   221   | o  normal2
       
   222   | |
       
   223   | o  normal-id
       
   224   |/
       
   225   o  normal-ancestor
       
   226   
       
   227 
       
   228 
       
   229 Ancestor: normal  Parent: normal-id  Parent: large   result: large
       
   230 
       
   231   $ hg up -Cqr normal-id
   212   $ hg merge -r large
   232   $ hg merge -r large
   213   getting changed largefiles
   233   getting changed largefiles
   214   1 largefiles updated, 0 removed
   234   1 largefiles updated, 0 removed
   215   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   235   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   216   (branch merge, don't forget to commit)
   236   (branch merge, don't forget to commit)
   218   large
   238   large
   219 
   239 
   220 swap
   240 swap
   221 
   241 
   222   $ hg up -Cqr large
   242   $ hg up -Cqr large
   223   $ hg merge -r normal=
   243   $ hg merge -r normal-id
   224   getting changed largefiles
   244   getting changed largefiles
   225   0 largefiles updated, 0 removed
   245   0 largefiles updated, 0 removed
   226   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   246   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   227   (branch merge, don't forget to commit)
   247   (branch merge, don't forget to commit)
   228   $ cat f
   248   $ cat f
   305   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   325   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   306   (branch merge, don't forget to commit)
   326   (branch merge, don't forget to commit)
   307   $ cat f
   327   $ cat f
   308   large
   328   large
   309 
   329 
   310 Ancestor: large   Parent: large=   Parent: normal  result: normal
   330 Ancestor: large   Parent: large-id   Parent: normal  result: normal
   311 
   331 
   312   $ hg up -Cqr large=
   332   $ hg up -Cqr large-id
   313   $ hg merge -r normal
   333   $ hg merge -r normal
   314   getting changed largefiles
   334   getting changed largefiles
   315   0 largefiles updated, 0 removed
   335   0 largefiles updated, 0 removed
   316   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   336   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   317   (branch merge, don't forget to commit)
   337   (branch merge, don't forget to commit)
   319   normal
   339   normal
   320 
   340 
   321 swap
   341 swap
   322 
   342 
   323   $ hg up -Cqr normal
   343   $ hg up -Cqr normal
   324   $ hg merge -r large=
   344   $ hg merge -r large-id
   325   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   345   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   326   (branch merge, don't forget to commit)
   346   (branch merge, don't forget to commit)
   327   $ cat f
   347   $ cat f
   328   normal
   348   normal
   329 
   349