Show More
@@ -577,7 +577,7 b' def getstatuswriter(ui, repo, forcibly=N' | |||
|
577 | 577 | Otherwise, this returns the function to always write out (or |
|
578 | 578 | ignore if ``not forcibly``) status. |
|
579 | 579 | ''' |
|
580 | if forcibly is None: | |
|
580 | if forcibly is None and util.safehasattr(repo, '_largefilesenabled'): | |
|
581 | 581 | return repo._lfstatuswriters[-1] |
|
582 | 582 | else: |
|
583 | 583 | if forcibly: |
@@ -832,6 +832,9 b' def hgclone(orig, ui, opts, *args, **kwa' | |||
|
832 | 832 | return result |
|
833 | 833 | |
|
834 | 834 | def overriderebase(orig, ui, repo, **opts): |
|
835 | if not util.safehasattr(repo, '_largefilesenabled'): | |
|
836 | return orig(ui, repo, **opts) | |
|
837 | ||
|
835 | 838 | resuming = opts.get('continue') |
|
836 | 839 | repo._lfcommithooks.append(lfutil.automatedcommithook(resuming)) |
|
837 | 840 | repo._lfstatuswriters.append(lambda *msg, **opts: None) |
@@ -24,6 +24,9 b' def reposetup(ui, repo):' | |||
|
24 | 24 | return |
|
25 | 25 | |
|
26 | 26 | class lfilesrepo(repo.__class__): |
|
27 | # the mark to examine whether "repo" object enables largefiles or not | |
|
28 | _largefilesenabled = True | |
|
29 | ||
|
27 | 30 | lfstatus = False |
|
28 | 31 | def status_nolfiles(self, *args, **kwargs): |
|
29 | 32 | return super(lfilesrepo, self).status(*args, **kwargs) |
@@ -907,6 +907,77 b' locally (issue4109)' | |||
|
907 | 907 | $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS |
|
908 | 908 | #endif |
|
909 | 909 | |
|
910 | Test overridden functions work correctly even for repos disabling | |
|
911 | largefiles (issue4547) | |
|
912 | ||
|
913 | $ hg showconfig extensions | grep largefiles | |
|
914 | extensions.largefiles=! | |
|
915 | ||
|
916 | (test updating implied by clone) | |
|
917 | ||
|
918 | $ hg init enabled-but-no-largefiles | |
|
919 | $ echo normal1 > enabled-but-no-largefiles/normal1 | |
|
920 | $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal1 | |
|
921 | $ hg -R enabled-but-no-largefiles commit -m '#0@enabled-but-no-largefiles' | |
|
922 | Invoking status precommit hook | |
|
923 | A normal1 | |
|
924 | $ cat >> enabled-but-no-largefiles/.hg/hgrc <<EOF | |
|
925 | > [extensions] | |
|
926 | > # enable locally | |
|
927 | > largefiles= | |
|
928 | > EOF | |
|
929 | $ hg clone -q enabled-but-no-largefiles no-largefiles | |
|
930 | ||
|
931 | (test rebasing implied by pull: precommit while rebasing unexpectedly | |
|
932 | shows "normal3" as "?", because lfdirstate isn't yet written out at | |
|
933 | that time) | |
|
934 | ||
|
935 | $ echo normal2 > enabled-but-no-largefiles/normal2 | |
|
936 | $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal2 | |
|
937 | $ hg -R enabled-but-no-largefiles commit -m '#1@enabled-but-no-largefiles' | |
|
938 | Invoking status precommit hook | |
|
939 | A normal2 | |
|
940 | ||
|
941 | $ echo normal3 > no-largefiles/normal3 | |
|
942 | $ hg -R no-largefiles add no-largefiles/normal3 | |
|
943 | $ hg -R no-largefiles commit -m '#1@no-largefiles' | |
|
944 | Invoking status precommit hook | |
|
945 | A normal3 | |
|
946 | ||
|
947 | $ hg -R no-largefiles -q pull --rebase | |
|
948 | Invoking status precommit hook | |
|
949 | ? normal3 | |
|
950 | ||
|
951 | (test reverting) | |
|
952 | ||
|
953 | $ hg init subrepo-root | |
|
954 | $ cat >> subrepo-root/.hg/hgrc <<EOF | |
|
955 | > [extensions] | |
|
956 | > # enable locally | |
|
957 | > largefiles= | |
|
958 | > EOF | |
|
959 | $ echo large > subrepo-root/large | |
|
960 | $ hg -R subrepo-root add --large subrepo-root/large | |
|
961 | $ hg clone -q no-largefiles subrepo-root/no-largefiles | |
|
962 | $ cat > subrepo-root/.hgsub <<EOF | |
|
963 | > no-largefiles = no-largefiles | |
|
964 | > EOF | |
|
965 | $ hg -R subrepo-root add subrepo-root/.hgsub | |
|
966 | $ hg -R subrepo-root commit -m '#0' | |
|
967 | Invoking status precommit hook | |
|
968 | A .hgsub | |
|
969 | A large | |
|
970 | ? .hgsubstate | |
|
971 | $ echo dirty >> subrepo-root/large | |
|
972 | $ echo dirty >> subrepo-root/no-largefiles/normal1 | |
|
973 | $ hg -R subrepo-root status -S | |
|
974 | M large | |
|
975 | M no-largefiles/normal1 | |
|
976 | $ hg -R subrepo-root revert --all | |
|
977 | reverting subrepo-root/.hglf/large (glob) | |
|
978 | reverting subrepo no-largefiles | |
|
979 | reverting subrepo-root/no-largefiles/normal1 (glob) | |
|
980 | ||
|
910 | 981 | $ cd .. |
|
911 | 982 | |
|
912 | 983 |
General Comments 0
You need to be logged in to leave comments.
Login now