equal
deleted
inserted
replaced
1 $ "$TESTDIR/hghave" symlink unix-permissions serve || exit 80 |
1 $ "$TESTDIR/hghave" symlink unix-permissions serve || exit 80 |
2 |
|
3 $ USERCACHE=`pwd`/cache; export USERCACHE |
2 $ USERCACHE=`pwd`/cache; export USERCACHE |
4 $ mkdir -p ${USERCACHE} |
3 $ mkdir -p ${USERCACHE} |
5 $ cat >> $HGRCPATH <<EOF |
4 $ cat >> $HGRCPATH <<EOF |
6 > [extensions] |
5 > [extensions] |
7 > largefiles= |
6 > largefiles= |
12 > publish=False |
11 > publish=False |
13 > [largefiles] |
12 > [largefiles] |
14 > minsize=2 |
13 > minsize=2 |
15 > patterns=glob:**.dat |
14 > patterns=glob:**.dat |
16 > usercache=${USERCACHE} |
15 > usercache=${USERCACHE} |
|
16 > [hooks] |
|
17 > precommit=echo "Invoking status precommit hook"; hg status |
17 > EOF |
18 > EOF |
18 |
19 |
19 Create the repo with a couple of revisions of both large and normal |
20 Create the repo with a couple of revisions of both large and normal |
20 files, testing that status correctly shows largefiles and that summary output |
21 files, testing that status correctly shows largefiles and that summary output |
21 is correct. |
22 is correct. |
28 $ echo large1 > large1 |
29 $ echo large1 > large1 |
29 $ echo large2 > sub/large2 |
30 $ echo large2 > sub/large2 |
30 $ hg add normal1 sub/normal2 |
31 $ hg add normal1 sub/normal2 |
31 $ hg add --large large1 sub/large2 |
32 $ hg add --large large1 sub/large2 |
32 $ hg commit -m "add files" |
33 $ hg commit -m "add files" |
|
34 Invoking status precommit hook |
|
35 A large1 |
|
36 A normal1 |
|
37 A sub/large2 |
|
38 A sub/normal2 |
33 $ echo normal11 > normal1 |
39 $ echo normal11 > normal1 |
34 $ echo normal22 > sub/normal2 |
40 $ echo normal22 > sub/normal2 |
35 $ echo large11 > large1 |
41 $ echo large11 > large1 |
36 $ echo large22 > sub/large2 |
42 $ echo large22 > sub/large2 |
37 $ hg st |
43 $ hg commit -m "edit files" |
|
44 Invoking status precommit hook |
38 M large1 |
45 M large1 |
39 M normal1 |
46 M normal1 |
40 M sub/large2 |
47 M sub/large2 |
41 M sub/normal2 |
48 M sub/normal2 |
42 $ hg sum |
|
43 parent: 0:30d30fe6a5be tip |
|
44 add files |
|
45 branch: default |
|
46 commit: 4 modified |
|
47 update: (current) |
|
48 $ hg commit -m "edit files" |
|
49 $ hg sum --large |
49 $ hg sum --large |
50 parent: 1:ce8896473775 tip |
50 parent: 1:ce8896473775 tip |
51 edit files |
51 edit files |
52 branch: default |
52 branch: default |
53 commit: (clean) |
53 commit: (clean) |
67 |
67 |
68 Remove both largefiles and normal files. |
68 Remove both largefiles and normal files. |
69 |
69 |
70 $ hg remove normal1 large1 |
70 $ hg remove normal1 large1 |
71 $ hg commit -m "remove files" |
71 $ hg commit -m "remove files" |
|
72 Invoking status precommit hook |
|
73 R large1 |
|
74 R normal1 |
72 $ ls |
75 $ ls |
73 sub |
76 sub |
74 $ echo "testlargefile" > large1-test |
77 $ echo "testlargefile" > large1-test |
75 $ hg add --large large1-test |
78 $ hg add --large large1-test |
76 $ hg st |
79 $ hg st |
86 |
89 |
87 Copy both largefiles and normal files (testing that status output is correct). |
90 Copy both largefiles and normal files (testing that status output is correct). |
88 |
91 |
89 $ hg cp sub/normal2 normal1 |
92 $ hg cp sub/normal2 normal1 |
90 $ hg cp sub/large2 large1 |
93 $ hg cp sub/large2 large1 |
91 $ hg st |
94 $ hg commit -m "copy files" |
|
95 Invoking status precommit hook |
92 A large1 |
96 A large1 |
93 A normal1 |
97 A normal1 |
94 $ hg commit -m "copy files" |
|
95 $ cat normal1 |
98 $ cat normal1 |
96 normal22 |
99 normal22 |
97 $ cat large1 |
100 $ cat large1 |
98 large22 |
101 large22 |
99 |
102 |
102 $ hg mv normal1 normal3 |
105 $ hg mv normal1 normal3 |
103 $ hg mv large1 large3 |
106 $ hg mv large1 large3 |
104 $ hg mv sub/normal2 sub/normal4 |
107 $ hg mv sub/normal2 sub/normal4 |
105 $ hg mv sub/large2 sub/large4 |
108 $ hg mv sub/large2 sub/large4 |
106 $ hg commit -m "move files" |
109 $ hg commit -m "move files" |
|
110 Invoking status precommit hook |
|
111 A large3 |
|
112 A normal3 |
|
113 A sub/large4 |
|
114 A sub/normal4 |
|
115 R large1 |
|
116 R normal1 |
|
117 R sub/large2 |
|
118 R sub/normal2 |
107 $ cat normal3 |
119 $ cat normal3 |
108 normal22 |
120 normal22 |
109 $ cat large3 |
121 $ cat large3 |
110 large22 |
122 large22 |
111 $ cat sub/normal4 |
123 $ cat sub/normal4 |
171 $ echo normal3 > normal3 |
183 $ echo normal3 > normal3 |
172 $ echo large3 > large3 |
184 $ echo large3 > large3 |
173 $ echo normal4 > sub/normal4 |
185 $ echo normal4 > sub/normal4 |
174 $ echo large4 > sub/large4 |
186 $ echo large4 > sub/large4 |
175 $ hg commit normal3 large3 sub/normal4 sub/large4 -m "edit files again" |
187 $ hg commit normal3 large3 sub/normal4 sub/large4 -m "edit files again" |
|
188 Invoking status precommit hook |
|
189 M large3 |
|
190 M normal3 |
|
191 M sub/large4 |
|
192 M sub/normal4 |
176 $ cat normal3 |
193 $ cat normal3 |
177 normal3 |
194 normal3 |
178 $ cat large3 |
195 $ cat large3 |
179 large3 |
196 large3 |
180 $ cat sub/normal4 |
197 $ cat sub/normal4 |
189 $ echo large33 > large3 |
206 $ echo large33 > large3 |
190 $ echo normal44 > sub/normal4 |
207 $ echo normal44 > sub/normal4 |
191 $ echo large44 > sub/large4 |
208 $ echo large44 > sub/large4 |
192 $ cd sub |
209 $ cd sub |
193 $ hg commit -m "edit files yet again" |
210 $ hg commit -m "edit files yet again" |
|
211 Invoking status precommit hook |
|
212 M large3 |
|
213 M normal3 |
|
214 M sub/large4 |
|
215 M sub/normal4 |
194 $ cat ../normal3 |
216 $ cat ../normal3 |
195 normal33 |
217 normal33 |
196 $ cat ../large3 |
218 $ cat ../large3 |
197 large33 |
219 large33 |
198 $ cat normal4 |
220 $ cat normal4 |
253 $ hg forget notlarge |
275 $ hg forget notlarge |
254 |
276 |
255 Test forget on largefiles. |
277 Test forget on largefiles. |
256 |
278 |
257 $ hg forget large3 large5 test.dat reallylarge ratherlarge medium |
279 $ hg forget large3 large5 test.dat reallylarge ratherlarge medium |
258 $ hg st |
280 $ hg commit -m "add/edit more largefiles" |
|
281 Invoking status precommit hook |
259 A sub2/large6 |
282 A sub2/large6 |
260 A sub2/large7 |
283 A sub2/large7 |
261 R large3 |
284 R large3 |
262 ? large5 |
285 ? large5 |
263 ? medium |
286 ? medium |
264 ? notlarge |
287 ? notlarge |
265 ? ratherlarge |
288 ? ratherlarge |
266 ? reallylarge |
289 ? reallylarge |
267 ? test.dat |
290 ? test.dat |
268 $ hg commit -m "add/edit more largefiles" |
|
269 $ hg st |
291 $ hg st |
270 ? large3 |
292 ? large3 |
271 ? large5 |
293 ? large5 |
272 ? medium |
294 ? medium |
273 ? notlarge |
295 ? notlarge |
375 3 largefiles updated, 0 removed |
397 3 largefiles updated, 0 removed |
376 $ cd b |
398 $ cd b |
377 $ echo large4-modified > sub/large4 |
399 $ echo large4-modified > sub/large4 |
378 $ echo normal3-modified > normal3 |
400 $ echo normal3-modified > normal3 |
379 $ hg commit -m "modify normal file and largefile in repo b" |
401 $ hg commit -m "modify normal file and largefile in repo b" |
|
402 Invoking status precommit hook |
|
403 M normal3 |
|
404 M sub/large4 |
380 $ cd ../d |
405 $ cd ../d |
381 $ echo large6-modified > sub2/large6 |
406 $ echo large6-modified > sub2/large6 |
382 $ echo normal4-modified > sub/normal4 |
407 $ echo normal4-modified > sub/normal4 |
383 $ hg commit -m "modify normal file largefile in repo d" |
408 $ hg commit -m "modify normal file largefile in repo d" |
|
409 Invoking status precommit hook |
|
410 M sub/normal4 |
|
411 M sub2/large6 |
384 $ cd .. |
412 $ cd .. |
385 $ hg clone d e |
413 $ hg clone d e |
386 updating to branch default |
414 updating to branch default |
387 5 files updated, 0 files merged, 0 files removed, 0 files unresolved |
415 5 files updated, 0 files merged, 0 files removed, 0 files unresolved |
388 getting changed largefiles |
416 getting changed largefiles |
395 adding manifests |
423 adding manifests |
396 adding file changes |
424 adding file changes |
397 added 1 changesets with 2 changes to 2 files (+1 heads) |
425 added 1 changesets with 2 changes to 2 files (+1 heads) |
398 getting changed largefiles |
426 getting changed largefiles |
399 1 largefiles updated, 0 removed |
427 1 largefiles updated, 0 removed |
400 saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-backup.hg (glob) |
428 Invoking status precommit hook |
|
429 M sub/normal4 |
|
430 M sub2/large6 |
|
431 saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-backup.hg |
401 nothing to rebase |
432 nothing to rebase |
402 $ hg log --template '{rev}:{node|short} {desc|firstline}\n' |
433 $ hg log --template '{rev}:{node|short} {desc|firstline}\n' |
403 9:598410d3eb9a modify normal file largefile in repo d |
434 9:598410d3eb9a modify normal file largefile in repo d |
404 8:a381d2c8c80e modify normal file and largefile in repo b |
435 8:a381d2c8c80e modify normal file and largefile in repo b |
405 7:daea875e9014 add/edit more largefiles |
436 7:daea875e9014 add/edit more largefiles |
430 added 1 changesets with 2 changes to 2 files (+1 heads) |
461 added 1 changesets with 2 changes to 2 files (+1 heads) |
431 (run 'hg heads' to see heads, 'hg merge' to merge) |
462 (run 'hg heads' to see heads, 'hg merge' to merge) |
432 $ hg rebase |
463 $ hg rebase |
433 getting changed largefiles |
464 getting changed largefiles |
434 1 largefiles updated, 0 removed |
465 1 largefiles updated, 0 removed |
435 saved backup bundle to $TESTTMP/e/.hg/strip-backup/f574fb32bb45-backup.hg (glob) |
466 Invoking status precommit hook |
|
467 M sub/normal4 |
|
468 M sub2/large6 |
|
469 saved backup bundle to $TESTTMP/e/.hg/strip-backup/f574fb32bb45-backup.hg |
436 $ hg log --template '{rev}:{node|short} {desc|firstline}\n' |
470 $ hg log --template '{rev}:{node|short} {desc|firstline}\n' |
437 9:598410d3eb9a modify normal file largefile in repo d |
471 9:598410d3eb9a modify normal file largefile in repo d |
438 8:a381d2c8c80e modify normal file and largefile in repo b |
472 8:a381d2c8c80e modify normal file and largefile in repo b |
439 7:daea875e9014 add/edit more largefiles |
473 7:daea875e9014 add/edit more largefiles |
440 6:4355d653f84f edit files yet again |
474 6:4355d653f84f edit files yet again |
457 |
491 |
458 Rollback on largefiles. |
492 Rollback on largefiles. |
459 |
493 |
460 $ echo large4-modified-again > sub/large4 |
494 $ echo large4-modified-again > sub/large4 |
461 $ hg commit -m "Modify large4 again" |
495 $ hg commit -m "Modify large4 again" |
|
496 Invoking status precommit hook |
|
497 M sub/large4 |
462 $ hg rollback |
498 $ hg rollback |
463 repository tip rolled back to revision 9 (undo commit) |
499 repository tip rolled back to revision 9 (undo commit) |
464 working directory now based on revision 9 |
500 working directory now based on revision 9 |
465 $ hg st |
501 $ hg st |
466 M sub/large4 |
502 M sub/large4 |
580 getting changed largefiles |
616 getting changed largefiles |
581 3 largefiles updated, 0 removed |
617 3 largefiles updated, 0 removed |
582 $ cd f |
618 $ cd f |
583 $ echo "large4-merge-test" > sub/large4 |
619 $ echo "large4-merge-test" > sub/large4 |
584 $ hg commit -m "Modify large4 to test merge" |
620 $ hg commit -m "Modify large4 to test merge" |
|
621 Invoking status precommit hook |
|
622 M sub/large4 |
585 $ hg pull ../e |
623 $ hg pull ../e |
586 pulling from ../e |
624 pulling from ../e |
587 searching for changes |
625 searching for changes |
588 adding changesets |
626 adding changesets |
589 adding manifests |
627 adding manifests |
597 3 files updated, 1 files merged, 0 files removed, 0 files unresolved |
635 3 files updated, 1 files merged, 0 files removed, 0 files unresolved |
598 (branch merge, don't forget to commit) |
636 (branch merge, don't forget to commit) |
599 getting changed largefiles |
637 getting changed largefiles |
600 1 largefiles updated, 0 removed |
638 1 largefiles updated, 0 removed |
601 $ hg commit -m "Merge repos e and f" |
639 $ hg commit -m "Merge repos e and f" |
|
640 Invoking status precommit hook |
|
641 M normal3 |
|
642 M sub/normal4 |
|
643 M sub2/large6 |
602 $ cat normal3 |
644 $ cat normal3 |
603 normal3-modified |
645 normal3-modified |
604 $ cat sub/normal4 |
646 $ cat sub/normal4 |
605 normal4-modified |
647 normal4-modified |
606 $ cat sub/large4 |
648 $ cat sub/large4 |
613 Test status after merging with a branch that introduces a new largefile: |
655 Test status after merging with a branch that introduces a new largefile: |
614 |
656 |
615 $ echo large > large |
657 $ echo large > large |
616 $ hg add --large large |
658 $ hg add --large large |
617 $ hg commit -m 'add largefile' |
659 $ hg commit -m 'add largefile' |
|
660 Invoking status precommit hook |
|
661 A large |
618 $ hg update -q ".^" |
662 $ hg update -q ".^" |
619 $ echo change >> normal3 |
663 $ echo change >> normal3 |
620 $ hg commit -m 'some change' |
664 $ hg commit -m 'some change' |
|
665 Invoking status precommit hook |
|
666 M normal3 |
621 created new head |
667 created new head |
622 $ hg merge |
668 $ hg merge |
623 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
669 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
624 (branch merge, don't forget to commit) |
670 (branch merge, don't forget to commit) |
625 getting changed largefiles |
671 getting changed largefiles |
680 large7 |
726 large7 |
681 |
727 |
682 Test that renaming a largefile results in correct output for status |
728 Test that renaming a largefile results in correct output for status |
683 |
729 |
684 $ hg rename sub/large4 large4-renamed |
730 $ hg rename sub/large4 large4-renamed |
685 $ hg st |
731 $ hg commit -m "test rename output" |
|
732 Invoking status precommit hook |
686 A large4-renamed |
733 A large4-renamed |
687 R sub/large4 |
734 R sub/large4 |
688 $ hg commit -m "test rename output" |
|
689 $ cat large4-renamed |
735 $ cat large4-renamed |
690 large4-modified |
736 large4-modified |
691 $ cd sub2 |
737 $ cd sub2 |
692 $ hg rename large6 large6-renamed |
738 $ hg rename large6 large6-renamed |
693 $ hg st |
739 $ hg st |
699 $ mkdir r1 |
745 $ mkdir r1 |
700 $ cd r1 |
746 $ cd r1 |
701 $ hg init |
747 $ hg init |
702 $ echo c1 > f1 |
748 $ echo c1 > f1 |
703 $ hg add f1 |
749 $ hg add f1 |
704 $ hg com -m "m1" |
750 $ hg commit -m "m1" |
|
751 Invoking status precommit hook |
|
752 A f1 |
705 $ cd .. |
753 $ cd .. |
706 $ hg serve -R r1 -d -p $HGPORT --pid-file hg.pid |
754 $ hg serve -R r1 -d -p $HGPORT --pid-file hg.pid |
707 $ cat hg.pid >> $DAEMON_PIDS |
755 $ cat hg.pid >> $DAEMON_PIDS |
708 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT r2 |
756 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT r2 |
709 requesting all changes |
757 requesting all changes |
730 $ mkdir r4 |
778 $ mkdir r4 |
731 $ cd r4 |
779 $ cd r4 |
732 $ hg init |
780 $ hg init |
733 $ echo c1 > f1 |
781 $ echo c1 > f1 |
734 $ hg add --large f1 |
782 $ hg add --large f1 |
735 $ hg com -m "m1" |
783 $ hg commit -m "m1" |
|
784 Invoking status precommit hook |
|
785 A f1 |
736 $ cd .. |
786 $ cd .. |
737 $ hg serve -R r4 -d -p $HGPORT2 --pid-file hg.pid |
787 $ hg serve -R r4 -d -p $HGPORT2 --pid-file hg.pid |
738 $ cat hg.pid >> $DAEMON_PIDS |
788 $ cat hg.pid >> $DAEMON_PIDS |
739 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT2 r5 |
789 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT2 r5 |
740 abort: remote error: |
790 abort: remote error: |
760 $ mkdir r6 |
810 $ mkdir r6 |
761 $ cd r6 |
811 $ cd r6 |
762 $ hg init |
812 $ hg init |
763 $ echo c1 > f1 |
813 $ echo c1 > f1 |
764 $ hg add f1 |
814 $ hg add f1 |
765 $ hg com -m "m1" |
815 $ hg commit -m "m1" |
|
816 Invoking status precommit hook |
|
817 A f1 |
766 $ cat >> .hg/hgrc <<! |
818 $ cat >> .hg/hgrc <<! |
767 > [web] |
819 > [web] |
768 > push_ssl = false |
820 > push_ssl = false |
769 > allow_push = * |
821 > allow_push = * |
770 > ! |
822 > ! |
773 updating to branch default |
825 updating to branch default |
774 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
826 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
775 $ cd r7 |
827 $ cd r7 |
776 $ echo c2 > f2 |
828 $ echo c2 > f2 |
777 $ hg add --large f2 |
829 $ hg add --large f2 |
778 $ hg com -m "m2" |
830 $ hg commit -m "m2" |
|
831 Invoking status precommit hook |
|
832 A f2 |
779 $ hg --config extensions.largefiles=! -R ../r6 serve -d -p $HGPORT --pid-file ../hg.pid |
833 $ hg --config extensions.largefiles=! -R ../r6 serve -d -p $HGPORT --pid-file ../hg.pid |
780 $ cat ../hg.pid >> $DAEMON_PIDS |
834 $ cat ../hg.pid >> $DAEMON_PIDS |
781 $ hg push http://localhost:$HGPORT |
835 $ hg push http://localhost:$HGPORT |
782 pushing to http://localhost:$HGPORT/ |
836 pushing to http://localhost:$HGPORT/ |
783 searching for changes |
837 searching for changes |
809 $ hg init pubrepo |
863 $ hg init pubrepo |
810 $ cd pubrepo |
864 $ cd pubrepo |
811 $ dd if=/dev/urandom bs=1k count=11k > a-large-file 2> /dev/null |
865 $ dd if=/dev/urandom bs=1k count=11k > a-large-file 2> /dev/null |
812 $ hg add --large a-large-file |
866 $ hg add --large a-large-file |
813 $ hg commit -m "Add a large file" |
867 $ hg commit -m "Add a large file" |
|
868 Invoking status precommit hook |
|
869 A a-large-file |
814 $ cd .. |
870 $ cd .. |
815 $ chmod -R a-w pubrepo |
871 $ chmod -R a-w pubrepo |
816 $ cd .. |
872 $ cd .. |
817 $ mkdir bob |
873 $ mkdir bob |
818 $ HOME="`pwd`/bob" |
874 $ HOME="`pwd`/bob" |
835 $ hg init largesymlink |
891 $ hg init largesymlink |
836 $ cd largesymlink |
892 $ cd largesymlink |
837 $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null |
893 $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null |
838 $ hg add --large largefile |
894 $ hg add --large largefile |
839 $ hg commit -m "commit a large file" |
895 $ hg commit -m "commit a large file" |
|
896 Invoking status precommit hook |
|
897 A largefile |
840 $ ln -s largefile largelink |
898 $ ln -s largefile largelink |
841 $ hg add largelink |
899 $ hg add largelink |
842 $ hg commit -m "commit a large symlink" |
900 $ hg commit -m "commit a large symlink" |
|
901 Invoking status precommit hook |
|
902 A largelink |
843 $ rm -f largelink |
903 $ rm -f largelink |
844 $ hg up >/dev/null |
904 $ hg up >/dev/null |
845 $ test -f largelink |
905 $ test -f largelink |
846 [1] |
906 [1] |
847 $ test -L largelink |
907 $ test -L largelink |