tests/test-lfs.t
changeset 35480 417e8e040102
parent 35478 16660fd4428d
child 35481 bb6a80fc969a
equal deleted inserted replaced
35479:b0c01a5ee35c 35480:417e8e040102
   702   $ echo 'damage' >> $TESTTMP/dummy-remote/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   702   $ echo 'damage' >> $TESTTMP/dummy-remote/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   703   $ hg --config lfs.usercache=emptycache clone -v repo5 fromcorrupt2
   703   $ hg --config lfs.usercache=emptycache clone -v repo5 fromcorrupt2
   704   updating to branch default
   704   updating to branch default
   705   resolving manifests
   705   resolving manifests
   706   getting l
   706   getting l
   707   lfs: adding 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b to the usercache
   707   abort: detected corrupt lfs object: 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   708   lfs: found 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b in the local lfs store
   708   (run hg verify)
   709   abort: integrity check failed on data/l.i:3!
       
   710   [255]
   709   [255]
   711 
   710 
   712 BUG: A corrupted lfs blob either shouldn't be created after a transfer from a
   711 A corrupted lfs blob is not transferred from a file://remotestore to the
   713 file://remotestore, or it shouldn't be left behind.
   712 usercache or local store.
   714 
   713 
   715   $ cat emptycache/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b | $TESTDIR/f --sha256
   714   $ test -f emptycache/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   716   sha256=40f67c7e91d554db4bc500f8f62c2e40f9f61daa5b62388e577bbae26f5396ff
   715   [1]
   717   $ cat fromcorrupt2/.hg/store/lfs/objects/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b | $TESTDIR/f --sha256
   716   $ test -f fromcorrupt2/.hg/store/lfs/objects/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   718   sha256=40f67c7e91d554db4bc500f8f62c2e40f9f61daa5b62388e577bbae26f5396ff
   717   [1]
   719 
   718 
   720   $ hg -R fromcorrupt2 verify
   719   $ hg -R fromcorrupt2 verify
   721   checking changesets
   720   checking changesets
   722   checking manifests
   721   checking manifests
   723   crosschecking files in changesets and manifests
   722   crosschecking files in changesets and manifests
   724   checking files
   723   checking files
   725    l@1: unpacking 46a2f24864bc: integrity check failed on data/l.i:0
   724    l@1: unpacking 46a2f24864bc: integrity check failed on data/l.i:0
   726    l@4: unpacking 6f1ff1f39c11: integrity check failed on data/l.i:3
       
   727    large@0: unpacking 2c531e0992ff: integrity check failed on data/large.i:0
   725    large@0: unpacking 2c531e0992ff: integrity check failed on data/large.i:0
   728   4 files, 5 changesets, 10 total revisions
   726   4 files, 5 changesets, 10 total revisions
   729   3 integrity errors encountered!
   727   2 integrity errors encountered!
   730   (first damaged changeset appears to be 0)
   728   (first damaged changeset appears to be 0)
   731   [1]
   729   [1]
   732 
   730 
   733 BUG: push will happily send corrupt files upstream.  (The alternate dummy remote
   731 Corrupt local files are not sent upstream.  (The alternate dummy remote
   734 avoids the corrupt lfs object in the original remote.)
   732 avoids the corrupt lfs object in the original remote.)
   735 
   733 
   736   $ mkdir $TESTTMP/dummy-remote2
   734   $ mkdir $TESTTMP/dummy-remote2
   737   $ hg init dest
   735   $ hg init dest
   738   $ hg -R fromcorrupt2 --config lfs.url=file:///$TESTTMP/dummy-remote2 push -v dest
   736   $ hg -R fromcorrupt2 --config lfs.url=file:///$TESTTMP/dummy-remote2 push -v dest
   740   searching for changes
   738   searching for changes
   741   lfs: found 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b in the local lfs store
   739   lfs: found 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b in the local lfs store
   742   lfs: found 89b6070915a3d573ff3599d1cda305bc5e38549b15c4847ab034169da66e1ca8 in the local lfs store
   740   lfs: found 89b6070915a3d573ff3599d1cda305bc5e38549b15c4847ab034169da66e1ca8 in the local lfs store
   743   lfs: found b1a6ea88da0017a0e77db139a54618986e9a2489bee24af9fe596de9daac498c in the local lfs store
   741   lfs: found b1a6ea88da0017a0e77db139a54618986e9a2489bee24af9fe596de9daac498c in the local lfs store
   744   lfs: found 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e in the local lfs store
   742   lfs: found 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e in the local lfs store
   745   5 changesets found
   743   abort: detected corrupt lfs object: 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e
   746   uncompressed size of bundle content:
   744   (run hg verify)
   747        997 (changelog)
   745   [255]
   748       1032 (manifests)
       
   749        841  l
       
   750        272  large
       
   751        788  s
       
   752        139  small
       
   753   adding changesets
       
   754   adding manifests
       
   755   adding file changes
       
   756   added 5 changesets with 10 changes to 4 files
       
   757 
   746 
   758   $ hg -R fromcorrupt2 --config lfs.url=file:///$TESTTMP/dummy-remote2 verify -v
   747   $ hg -R fromcorrupt2 --config lfs.url=file:///$TESTTMP/dummy-remote2 verify -v
   759   repository uses revlog format 1
   748   repository uses revlog format 1
   760   checking changesets
   749   checking changesets
   761   checking manifests
   750   checking manifests
   762   crosschecking files in changesets and manifests
   751   crosschecking files in changesets and manifests
   763   checking files
   752   checking files
   764   lfs: found 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e in the local lfs store
   753   lfs: found 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e in the local lfs store
   765    l@1: unpacking 46a2f24864bc: integrity check failed on data/l.i:0
   754    l@1: unpacking 46a2f24864bc: integrity check failed on data/l.i:0
   766   lfs: found 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b in the local lfs store
   755   lfs: found 22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b in the local lfs store
   767    l@4: unpacking 6f1ff1f39c11: integrity check failed on data/l.i:3
       
   768   lfs: found 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e in the local lfs store
   756   lfs: found 66100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e in the local lfs store
   769    large@0: unpacking 2c531e0992ff: integrity check failed on data/large.i:0
   757    large@0: unpacking 2c531e0992ff: integrity check failed on data/large.i:0
   770   lfs: found 89b6070915a3d573ff3599d1cda305bc5e38549b15c4847ab034169da66e1ca8 in the local lfs store
   758   lfs: found 89b6070915a3d573ff3599d1cda305bc5e38549b15c4847ab034169da66e1ca8 in the local lfs store
   771   lfs: found b1a6ea88da0017a0e77db139a54618986e9a2489bee24af9fe596de9daac498c in the local lfs store
   759   lfs: found b1a6ea88da0017a0e77db139a54618986e9a2489bee24af9fe596de9daac498c in the local lfs store
   772   4 files, 5 changesets, 10 total revisions
   760   4 files, 5 changesets, 10 total revisions
   773   3 integrity errors encountered!
   761   2 integrity errors encountered!
   774   (first damaged changeset appears to be 0)
   762   (first damaged changeset appears to be 0)
   775   [1]
   763   [1]
   776 
   764 
   777   $ cat $TESTTMP/dummy-remote2/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b | $TESTDIR/f --sha256
   765   $ cat $TESTTMP/dummy-remote2/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b | $TESTDIR/f --sha256
   778   sha256=40f67c7e91d554db4bc500f8f62c2e40f9f61daa5b62388e577bbae26f5396ff
   766   sha256=22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   779   $ cat fromcorrupt2/.hg/store/lfs/objects/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b | $TESTDIR/f --sha256
   767   $ cat fromcorrupt2/.hg/store/lfs/objects/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b | $TESTDIR/f --sha256
   780   sha256=40f67c7e91d554db4bc500f8f62c2e40f9f61daa5b62388e577bbae26f5396ff
   768   sha256=22f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
   781 
   769   $ test -f $TESTTMP/dummy-remote2/66/100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e
   782   $ cat $TESTTMP/dummy-remote2/66/100b384bf761271b407d79fc30cdd0554f3b2c5d944836e936d584b88ce88e
   770   [1]
   783   LONGER-THAN-TEN-BYTES-WILL-TRIGGER-LFS
       
   784   damage
       
   785   $ cat $TESTTMP/dummy-remote2/22/f66a3fc0b9bf3f012c814303995ec07099b3a9ce02a7af84b5970811074a3b
       
   786   RESTORE-TO-BE-LARGE
       
   787   damage
       
   788 
   771 
   789 Accessing a corrupt file will complain
   772 Accessing a corrupt file will complain
   790 
   773 
   791   $ hg --cwd fromcorrupt2 cat -r 0 large
   774   $ hg --cwd fromcorrupt2 cat -r 0 large
   792   abort: integrity check failed on data/large.i:0!
   775   abort: integrity check failed on data/large.i:0!