tests/test-largefiles.t
changeset 15251 173b00827279
parent 15225 b450a4d427ef
child 15253 67d010779907
equal deleted inserted replaced
15250:f172292cd416 15251:173b00827279
     1   $ cat >> $HGRCPATH <<EOF
     1   $ cat >> $HGRCPATH <<EOF
     2   > [extensions]
     2   > [extensions]
     3   > largefiles=
     3   > largefiles=
       
     4   > purge=
       
     5   > rebase=
       
     6   > [largefiles]
       
     7   > size=2
       
     8   > patterns=glob:**.dat
     4   > EOF
     9   > EOF
     5 
    10 
     6 Create the repo with a couple of revisions of both large and normal
    11 Create the repo with a couple of revisions of both large and normal
     7 files (testing that status correctly shows largefiles.
    12 files (testing that status correctly shows largefiles.
     8 
    13 
   122   large22
   127   large22
   123   $ cat sub/normal4
   128   $ cat sub/normal4
   124   normal22
   129   normal22
   125   $ cat sub/large4
   130   $ cat sub/large4
   126   large22
   131   large22
       
   132 
       
   133 Test a separate commit corner case (specifying files to commit) and check
       
   134 that the commited files have the right value.
       
   135 
       
   136   $ cd ../a
       
   137   $ echo normal3 > normal3
       
   138   $ echo large3 > large3
       
   139   $ echo normal4 > sub/normal4
       
   140   $ echo large4 > sub/large4
       
   141   $ hg commit normal3 large3 sub/normal4 sub/large4 -m "edit files again"
       
   142   $ cat normal3
       
   143   normal3
       
   144   $ cat large3
       
   145   large3
       
   146   $ cat sub/normal4
       
   147   normal4
       
   148   $ cat sub/large4
       
   149   large4
       
   150 
       
   151 Test one more commit corner case that has been known to break (comitting from
       
   152 a sub-directory of the repo).
       
   153 
       
   154   $ cd ../a
       
   155   $ echo normal33 > normal3
       
   156   $ echo large33 > large3
       
   157   $ echo normal44 > sub/normal4
       
   158   $ echo large44 > sub/large4
       
   159   $ cd sub
       
   160   $ hg commit -m "edit files yet again"
       
   161   $ cat ../normal3
       
   162   normal33
       
   163   $ cat ../large3
       
   164   large33
       
   165   $ cat normal4
       
   166   normal44
       
   167   $ cat large4
       
   168   large44
       
   169 
       
   170 Check that committing standins is not allowed.
       
   171 
       
   172   $ cd ..
       
   173   $ echo large3 > large3
       
   174   $ hg commit .hglf/large3 -m "try to commit standin"
       
   175   abort: Don't commit largefile standin. Commit largefile.
       
   176   [255]
       
   177 
       
   178 Test some cornercases for adding largefiles.
       
   179 
       
   180   $ echo large5 > large5
       
   181   $ hg add --large large5
       
   182   $ hg add --large large5
       
   183   large5 already a largefile
       
   184   $ mkdir sub2
       
   185   $ echo large6 > sub2/large6
       
   186   $ echo large7 > sub2/large7
       
   187   $ hg add --large sub2
       
   188   adding sub2/large6 as a largefile
       
   189   adding sub2/large7 as a largefile
       
   190   $ hg st
       
   191   M large3
       
   192   A large5
       
   193   A sub2/large6
       
   194   A sub2/large7
       
   195 
       
   196 Test that files get added as largefiles based on .hgrc settings
       
   197 
       
   198   $ echo testdata > test.dat
       
   199   $ dd bs=3145728 count=1 if=/dev/zero of=reallylarge > /dev/null 2> /dev/null
       
   200   $ hg add
       
   201   adding reallylarge as a largefile
       
   202   adding test.dat as a largefile
       
   203   $ dd bs=1048576 count=1 if=/dev/zero of=reallylarge2 > /dev/null 2> /dev/null
       
   204 
       
   205 Test that specifying the --lsize command on the comand-line works
       
   206 
       
   207   $ hg add --lfsize 1
       
   208   adding reallylarge2 as a largefile
       
   209 
       
   210 Test forget on largefiles.
       
   211 
       
   212   $ hg forget large3 large5 test.dat reallylarge reallylarge2
       
   213   $ hg st
       
   214   A sub2/large6
       
   215   A sub2/large7
       
   216   R large3
       
   217   ? large5
       
   218   ? reallylarge
       
   219   ? reallylarge2
       
   220   ? test.dat
       
   221   $ hg commit -m "add/edit more largefiles"
       
   222   $ hg st
       
   223   ? large3
       
   224   ? large5
       
   225   ? reallylarge
       
   226   ? reallylarge2
       
   227   ? test.dat
       
   228 
       
   229 Test purge with largefiles (verify that largefiles get populated in the
       
   230 working copy correctly after a purge)
       
   231 
       
   232   $ hg purge --all
       
   233   $ cat sub/large4
       
   234   large44
       
   235   $ cat sub2/large6
       
   236   large6
       
   237   $ cat sub2/large7
       
   238   large7
       
   239 
       
   240 Test cloning a largefiles repo.
       
   241 
       
   242   $ cd ..
       
   243   $ hg clone a b
       
   244   updating to branch default
       
   245   5 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   246   getting changed largefiles
       
   247   3 largefiles updated, 0 removed
       
   248   $ cd b
       
   249   $ hg log
       
   250   changeset:   7:daea875e9014
       
   251   tag:         tip
       
   252   user:        test
       
   253   date:        Thu Jan 01 00:00:00 1970 +0000
       
   254   summary:     add/edit more largefiles
       
   255   
       
   256   changeset:   6:4355d653f84f
       
   257   user:        test
       
   258   date:        Thu Jan 01 00:00:00 1970 +0000
       
   259   summary:     edit files yet again
       
   260   
       
   261   changeset:   5:9d5af5072dbd
       
   262   user:        test
       
   263   date:        Thu Jan 01 00:00:00 1970 +0000
       
   264   summary:     edit files again
       
   265   
       
   266   changeset:   4:74c02385b94c
       
   267   user:        test
       
   268   date:        Thu Jan 01 00:00:00 1970 +0000
       
   269   summary:     move files
       
   270   
       
   271   changeset:   3:9e8fbc4bce62
       
   272   user:        test
       
   273   date:        Thu Jan 01 00:00:00 1970 +0000
       
   274   summary:     copy files
       
   275   
       
   276   changeset:   2:51a0ae4d5864
       
   277   user:        test
       
   278   date:        Thu Jan 01 00:00:00 1970 +0000
       
   279   summary:     remove files
       
   280   
       
   281   changeset:   1:ce8896473775
       
   282   user:        test
       
   283   date:        Thu Jan 01 00:00:00 1970 +0000
       
   284   summary:     edit files
       
   285   
       
   286   changeset:   0:30d30fe6a5be
       
   287   user:        test
       
   288   date:        Thu Jan 01 00:00:00 1970 +0000
       
   289   summary:     add files
       
   290   
       
   291   $ cat normal3
       
   292   normal33
       
   293   $ cat sub/normal4
       
   294   normal44
       
   295   $ cat sub/large4
       
   296   large44
       
   297   $ cat sub2/large6
       
   298   large6
       
   299   $ cat sub2/large7
       
   300   large7
       
   301   $ cd ..
       
   302   $ hg clone a -r 3 c
       
   303   adding changesets
       
   304   adding manifests
       
   305   adding file changes
       
   306   added 4 changesets with 10 changes to 4 files
       
   307   updating to branch default
       
   308   4 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   309   getting changed largefiles
       
   310   2 largefiles updated, 0 removed
       
   311   $ cd c
       
   312   $ hg log
       
   313   changeset:   3:9e8fbc4bce62
       
   314   tag:         tip
       
   315   user:        test
       
   316   date:        Thu Jan 01 00:00:00 1970 +0000
       
   317   summary:     copy files
       
   318   
       
   319   changeset:   2:51a0ae4d5864
       
   320   user:        test
       
   321   date:        Thu Jan 01 00:00:00 1970 +0000
       
   322   summary:     remove files
       
   323   
       
   324   changeset:   1:ce8896473775
       
   325   user:        test
       
   326   date:        Thu Jan 01 00:00:00 1970 +0000
       
   327   summary:     edit files
       
   328   
       
   329   changeset:   0:30d30fe6a5be
       
   330   user:        test
       
   331   date:        Thu Jan 01 00:00:00 1970 +0000
       
   332   summary:     add files
       
   333   
       
   334   $ cat normal1
       
   335   normal22
       
   336   $ cat large1
       
   337   large22
       
   338   $ cat sub/normal2
       
   339   normal22
       
   340   $ cat sub/large2
       
   341   large22
       
   342 
       
   343 Test that old revisions of a clone have correct largefiles content.  This also
       
   344 tsts update.
       
   345 
       
   346   $ hg update -r 1 
       
   347   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   348   getting changed largefiles
       
   349   1 largefiles updated, 0 removed
       
   350   $ cat large1
       
   351   large11
       
   352   $ cat sub/large2
       
   353   large22
       
   354 
       
   355 Test that rebasing between two repositories does not revert largefiles to old
       
   356 revisions (this was a very bad bug that took a lot of work to fix).
       
   357 
       
   358   $ cd ..
       
   359   $ hg clone a d
       
   360   updating to branch default
       
   361   5 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   362   getting changed largefiles
       
   363   3 largefiles updated, 0 removed
       
   364   $ cd b
       
   365   $ echo large4-modified > sub/large4
       
   366   $ echo normal3-modified > normal3
       
   367   $ hg commit -m "modify normal file and largefile in repo b"
       
   368   $ cd ../d
       
   369   $ echo large6-modified > sub2/large6
       
   370   $ echo normal4-modified > sub/normal4
       
   371   $ hg commit -m "modify normal file largefile in repo d"
       
   372   $ hg pull --rebase ../b
       
   373   pulling from ../b
       
   374   searching for changes
       
   375   adding changesets
       
   376   adding manifests
       
   377   adding file changes
       
   378   added 1 changesets with 2 changes to 2 files (+1 heads)
       
   379   getting changed largefiles
       
   380   1 largefiles updated, 0 removed
       
   381   saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-backup.hg
       
   382   nothing to rebase
       
   383   $ hg log
       
   384   changeset:   9:598410d3eb9a
       
   385   tag:         tip
       
   386   user:        test
       
   387   date:        Thu Jan 01 00:00:00 1970 +0000
       
   388   summary:     modify normal file largefile in repo d
       
   389   
       
   390   changeset:   8:a381d2c8c80e
       
   391   user:        test
       
   392   date:        Thu Jan 01 00:00:00 1970 +0000
       
   393   summary:     modify normal file and largefile in repo b
       
   394   
       
   395   changeset:   7:daea875e9014
       
   396   user:        test
       
   397   date:        Thu Jan 01 00:00:00 1970 +0000
       
   398   summary:     add/edit more largefiles
       
   399   
       
   400   changeset:   6:4355d653f84f
       
   401   user:        test
       
   402   date:        Thu Jan 01 00:00:00 1970 +0000
       
   403   summary:     edit files yet again
       
   404   
       
   405   changeset:   5:9d5af5072dbd
       
   406   user:        test
       
   407   date:        Thu Jan 01 00:00:00 1970 +0000
       
   408   summary:     edit files again
       
   409   
       
   410   changeset:   4:74c02385b94c
       
   411   user:        test
       
   412   date:        Thu Jan 01 00:00:00 1970 +0000
       
   413   summary:     move files
       
   414   
       
   415   changeset:   3:9e8fbc4bce62
       
   416   user:        test
       
   417   date:        Thu Jan 01 00:00:00 1970 +0000
       
   418   summary:     copy files
       
   419   
       
   420   changeset:   2:51a0ae4d5864
       
   421   user:        test
       
   422   date:        Thu Jan 01 00:00:00 1970 +0000
       
   423   summary:     remove files
       
   424   
       
   425   changeset:   1:ce8896473775
       
   426   user:        test
       
   427   date:        Thu Jan 01 00:00:00 1970 +0000
       
   428   summary:     edit files
       
   429   
       
   430   changeset:   0:30d30fe6a5be
       
   431   user:        test
       
   432   date:        Thu Jan 01 00:00:00 1970 +0000
       
   433   summary:     add files
       
   434   
       
   435   $ cat normal3
       
   436   normal3-modified
       
   437   $ cat sub/normal4
       
   438   normal4-modified
       
   439   $ cat sub/large4
       
   440   large4-modified
       
   441   $ cat sub2/large6
       
   442   large6-modified
       
   443   $ cat sub2/large7
       
   444   large7