##// END OF EJS Templates
largefiles: access to specific fields only if largefiles enabled (issue4547)...
largefiles: access to specific fields only if largefiles enabled (issue4547) Even if largefiles extension is enabled in a repository, "repo" object, which isn't "largefiles.reposetup()"-ed, is passed to overridden functions in the cases below unexpectedly, because extensions are enabled for each repositories strictly. (1) clone without -U: (2) pull with -U: (3) pull with --rebase: combination of "enabled@src", "disabled@dst" and "not-required@src" cause this situation. largefiles requirement @src @dst @src result -------- -------- --------------- -------------------- enabled disabled not-required aborted unexpectedly required requirement error (intentional) -------- -------- --------------- -------------------- enabled enabled * success -------- -------- --------------- -------------------- disabled enabled * success (only for "pull") -------- -------- --------------- -------------------- disabled disabled not-required success required requirement error (intentional) -------- -------- --------------- -------------------- (4) update/revert with a subrepo disabling largefiles In these cases, overridden functions cause accessing to largefiles specific fields of not "largefiles.reposetup()"-ed "repo" object, and execution is aborted. - (1), (2), (4) cause accessing to "_lfstatuswriters" in "getstatuswriter()" invoked via "updatelfiles()" - (3) causes accessing to "_lfcommithooks" in "overriderebase()" For safe accessing to these fields, this patch examines whether passed "repo" object is "largefiles.reposetup()"-ed or not before accessing to them. This patch chooses examining existence of newly introduced "_largefilesenabled" instead of "_lfcommithooks" and "_lfstatuswriters" directly, because the former is better name for the generic "largefiles is enabled in this repo" mark than the latter. In the future, all other overridden functions should avoid largefiles specific processing for efficiency, and "_largefilesenabled" is better also for such purpose. BTW, "lfstatus" can't be used for such purpose, because some code paths set it forcibly regardless of existence of it in specified "repo" object.

File last commit:

r22960:7c13c940 default
r24158:d414c28d stable
Show More
test-static-http.t
162 lines | 4.2 KiB | text/troff | Tads3Lexer
/ tests / test-static-http.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require killdaemons
Matt Mackall
tests: unify test-static-http
r12491
Adrian Buehlmann
test-static-http: partially adapt for Windows
r17020 #if windows
$ hg clone http://localhost:$HGPORT/ copy
abort: * (glob)
[255]
#else
Matt Mackall
tests: unify test-static-http
r12491 $ hg clone http://localhost:$HGPORT/ copy
abort: error: Connection refused
[255]
Adrian Buehlmann
test-static-http: partially adapt for Windows
r17020 #endif
Matt Mackall
tests: unify test-static-http
r12491 $ test -d copy
[1]
This server doesn't do range requests so it's basically only good for
one pull
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 $ python "$TESTDIR/dumbhttp.py" -p $HGPORT --pid dumb.pid
Patrick Mezard
test-static-http.t: enable on Windows...
r17538 $ cat dumb.pid >> $DAEMON_PIDS
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init remote
Matt Mackall
tests: unify test-static-http
r12491 $ cd remote
$ echo foo > bar
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 $ echo c2 > '.dotfile with spaces'
$ hg add
adding .dotfile with spaces
adding bar
Matt Mackall
tests: unify test-static-http
r12491 $ hg commit -m"test"
$ hg tip
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 changeset: 0:02770d679fb8
Matt Mackall
tests: unify test-static-http
r12491 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: test
$ cd ..
$ hg clone static-http://localhost:$HGPORT/remote local
requesting all changes
adding changesets
adding manifests
adding file changes
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 added 1 changesets with 2 changes to 2 files
Matt Mackall
tests: unify test-static-http
r12491 updating to branch default
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: unify test-static-http
r12491 $ cd local
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 2 files, 1 changesets, 2 total revisions
Matt Mackall
tests: unify test-static-http
r12491 $ cat bar
foo
$ cd ../remote
$ echo baz > quux
$ hg commit -A -mtest2
adding quux
check for HTTP opener failures when cachefile does not exist
jfh
move tags.cache and branchheads.cache to a collected cache folder .hg/cache/...
r13272 $ rm .hg/cache/*
Matt Mackall
tests: unify test-static-http
r12491 $ cd ../local
$ echo '[hooks]' >> .hg/hgrc
Mads Kiilerich
tests: consistently use printenv.py the same MSYS/Windows-compatible way...
r17018 $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
Matt Mackall
tests: unify test-static-http
r12491 $ hg pull
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pulling from static-http://localhost:$HGPORT/remote
Matt Mackall
tests: unify test-static-http
r12491 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Mike Hommey
changegroup: use a copy of hookargs when invoking the changegroup hook...
r22960 changegroup hook: HG_NODE=4ac2e3648604439c580c69b09ec9d93a88d93432 HG_SOURCE=pull HG_URL=http://localhost:$HGPORT/remote
Matt Mackall
tests: unify test-static-http
r12491 (run 'hg update' to get a working copy)
trying to push
$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo more foo >> bar
$ hg commit -m"test"
$ hg push
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 pushing to static-http://localhost:$HGPORT/remote
Sune Foldager
peer: introduce canpush and improve error message
r17193 abort: destination does not support push
Matt Mackall
tests: unify test-static-http
r12491 [255]
trying clone -r
$ cd ..
timeless@mozdev.org
spelling: doesn't/does not
r17486 $ hg clone -r doesnotexist static-http://localhost:$HGPORT/remote local0
abort: unknown revision 'doesnotexist'!
Matt Mackall
tests: unify test-static-http
r12491 [255]
$ hg clone -r 0 static-http://localhost:$HGPORT/remote local0
adding changesets
adding manifests
adding file changes
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 added 1 changesets with 2 changes to 2 files
Matt Mackall
tests: unify test-static-http
r12491 updating to branch default
Adrian Buehlmann
test-static-http.t: increase test coverage on filenames...
r13209 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: unify test-static-http
r12491
Matt Mackall
tests: fixup issue markers to make check-commit happy
r22183 test with "/" URI (issue747) and subrepo
Matt Mackall
tests: unify test-static-http
r12491
$ hg init
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 $ hg init sub
Brad Hall
tag: don't allow tagging the null revision (issue1915)...
r17260 $ touch sub/test
$ hg -R sub commit -A -m "test"
adding test
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 $ hg -R sub tag not-empty
$ echo sub=sub > .hgsub
Matt Mackall
tests: unify test-static-http
r12491 $ echo a > a
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 $ hg add a .hgsub
$ hg -q ci -ma
Matt Mackall
tests: unify test-static-http
r12491 $ hg clone static-http://localhost:$HGPORT/ local2
requesting all changes
adding changesets
adding manifests
adding file changes
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 added 1 changesets with 3 changes to 3 files
Matt Mackall
tests: unify test-static-http
r12491 updating to branch default
Martin Geisler
subrepo: create subrepos using clone instead of pull...
r14281 cloning subrepo sub from static-http://localhost:$HGPORT/sub
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 requesting all changes
adding changesets
adding manifests
adding file changes
Brad Hall
tag: don't allow tagging the null revision (issue1915)...
r17260 added 2 changesets with 2 changes to 2 files
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: unify test-static-http
r12491 $ cd local2
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Mads Kiilerich
statichttprepo: don't modify localrepo class variables...
r13440 3 files, 1 changesets, 3 total revisions
Matt Mackall
tests: unify test-static-http
r12491 $ cat a
a
$ hg paths
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 default = static-http://localhost:$HGPORT/
Matt Mackall
tests: unify test-static-http
r12491
test with empty repo (issue965)
$ cd ..
$ hg init remotempty
$ hg clone static-http://localhost:$HGPORT/remotempty local3
no changes found
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd local3
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
0 files, 0 changesets, 0 total revisions
$ hg paths
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 default = static-http://localhost:$HGPORT/remotempty
Matt Mackall
tests: unify test-static-http
r12491
test with non-repo
$ cd ..
$ mkdir notarepo
$ hg clone static-http://localhost:$HGPORT/notarepo local3
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 abort: 'http://localhost:$HGPORT/notarepo' does not appear to be an hg repository!
Matt Mackall
tests: unify test-static-http
r12491 [255]
Patrick Mezard
test-static-http.t: enable on Windows...
r17538 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS