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! |