##// END OF EJS Templates
extensions: register functions always at loading extension (issue5601)...
extensions: register functions always at loading extension (issue5601) Before this patch, functions defined in extensions are registered via extra loaders only in _dispatch(). Therefore, loading extensions in other code paths like below omits registration of functions. - WSGI service - operation across repositories (e.g. subrepo) - test-duplicateoptions.py, using extensions.loadall() directly To register functions always at loading new extension, this patch moves implementation for extra loading from dispatch._dispatch() to extensions.loadall(). AFAIK, only commands module causes cyclic dependency between extensions module, but this patch imports all related modules just before extra loading in loadall(), in order to centralize them. This patch makes extensions.py depend on many other modules, even though extensions.py itself doesn't. It should be avoided if possible, but I don't have any better idea. Some other places like below aren't reasonable for extra loading, IMHO. - specific function in newly added module: existing callers of extensions.loadall() should invoke it, too - hg.repository() or so: no-repo commands aren't covered by this. BTW, this patch removes _loaded.add(name) on relocation, because dispatch._loaded is used only for extraloaders (for similar reason, "exts" variable is removed, too).

File last commit:

r32267:c2380b44 default
r33052:45b0e9d0 default
Show More
test-mq-symlinks.t
112 lines | 1.8 KiB | text/troff | Tads3Lexer
/ tests / test-mq-symlinks.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require symlink
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init
$ hg qinit
$ hg qnew base.patch
$ echo aaa > a
$ echo bbb > b
$ echo ccc > c
$ hg add a b c
$ hg qrefresh
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> a not a symlink
test replacing a file with a symlink
$ hg qnew symlink.patch
$ rm a
$ ln -s b a
$ hg qrefresh --git
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> b
$ hg qpop
popping symlink.patch
now at: base.patch
$ hg qpush
applying symlink.patch
now at: symlink.patch
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> b
test updating a symlink
$ rm a
$ ln -s c a
$ hg qnew --git -f updatelink
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> c
$ hg qpop
popping updatelink
now at: symlink.patch
$ hg qpush --debug
applying updatelink
patching file a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Pierre-Yves David
caches: move the 'updating the branch cache' message in 'updatecaches'...
r32267 updating the branch cache
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 now at: updatelink
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py a
Nicolas Dumazet
tests: unify test-mq-symlinks
r11908 a -> c
$ hg st
test replacing a symlink with a file
$ ln -s c s
$ hg add s
$ hg qnew --git -f addlink
$ rm s
$ echo sss > s
$ hg qnew --git -f replacelinkwithfile
$ hg qpop
popping replacelinkwithfile
now at: addlink
$ hg qpush
applying replacelinkwithfile
now at: replacelinkwithfile
$ cat s
sss
$ hg st
test symlink removal
$ hg qnew removesl.patch
$ hg rm a
$ hg qrefresh --git
$ hg qpop
popping removesl.patch
now at: replacelinkwithfile
$ hg qpush
applying removesl.patch
now at: removesl.patch
$ hg st -c
C b
C c
C s
Patrick Mezard
Merge with stable
r12345
replace broken symlink with another broken symlink
$ ln -s linka linka
$ hg add linka
$ hg qnew link
$ hg mv linka linkb
Mads Kiilerich
merge with stable
r12398 $ rm linkb
$ ln -s linkb linkb
Patrick Mezard
Merge with stable
r12345 $ hg qnew movelink
$ hg qpop
popping movelink
now at: link
$ hg qpush
applying movelink
now at: movelink
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ readlink.py linkb
Patrick Mezard
Merge with stable
r12345 linkb -> linkb