##// 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:

r22947:c63a09b6 default
r24158:d414c28d stable
Show More
test-pull.t
92 lines | 2.3 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require serve
Mads Kiilerich
tests: use 'hghave serve' to guard tests that requires serve daemon management
r15446
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init test
Adrian Buehlmann
combine tests
r12279 $ cd test
$ echo foo>foo
$ hg addremove
adding foo
$ hg commit -m 1
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
$ hg serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
$ cd ..
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg clone --pull http://foo:bar@localhost:$HGPORT/ copy
Adrian Buehlmann
combine tests
r12279 requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd copy
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
$ hg co
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat foo
foo
$ hg manifest --debug
2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg pull
Augie Fackler
clone: don't save user's password in .hg/hgrc (Issue3122)
r15552 pulling from http://foo@localhost:$HGPORT/
Adrian Buehlmann
combine tests
r12279 searching for changes
no changes found
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg rollback --dry-run --verbose
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision -1 (undo pull: http://foo:***@localhost:$HGPORT/)
Adrian Buehlmann
combine tests
r12279
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue622: hg init && hg pull -u URL doesn't checkout default branch
Adrian Buehlmann
combine tests
r12279
$ cd ..
$ hg init empty
$ cd empty
$ hg pull -u ../test
pulling from ../test
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Test 'file:' uri handling:
timeless@mozdev.org
spelling: doesn't/does not
r17486 $ hg pull -q file://../test-does-not-exist
Brodie Rao
hg: look up schemes using url.url
r13823 abort: file:// URLs can only refer to localhost
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
combine tests
r12279
Brodie Rao
url: refactor util.drop_scheme() and hg.localpath() into url.localpath()...
r13826 $ hg pull -q file://../test
abort: file:// URLs can only refer to localhost
[255]
Adrian Buehlmann
combine tests
r12279 $ hg pull -q file:../test
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 It's tricky to make file:// URLs working on every platform with
regular shell commands.
Adrian Buehlmann
combine tests
r12279
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ URL=`$PYTHON -c "import os; print 'file://foobar' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"`
Adrian Buehlmann
combine tests
r12279 $ hg pull -q "$URL"
Brodie Rao
url: abort on file:// URLs with non-localhost hosts
r13817 abort: file:// URLs can only refer to localhost
[255]
Adrian Buehlmann
combine tests
r12279
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ URL=`$PYTHON -c "import os; print 'file://localhost' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"`
Brodie Rao
url: abort on file:// URLs with non-localhost hosts
r13817 $ hg pull -q "$URL"
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..