Mercurial > hg
view tests/test-dispatch.t @ 26189:663fbc336e22
ui: change default path fallback mechanism (issue4796)
The previous paths API code always fell back to the default path. This
was wrong because if a requested path doesn't exist, that should error.
Only if no path was requested should we fall back to the default.
As part of implementing the test case for issue 4796, it was discovered
that the "repository does not exist" error message raised by
localrepository.__init__ wasn't being seen because the paths API
validates paths before localrepository.__init__ was being called.
The exception and error message from localrepository.__init__ has
been introduced to getpath(). This necessitated rewriting
expandpath() both to catch the exception and to have proper
default fallback.
This code is more complicated than I'd like. But making all tests pass
was a big chore. As more code moves to getpath(), there will likely be
opportunities to improve things a bit.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 06 Sep 2015 11:28:48 -0700 |
parents | c1d93edcf004 |
children | 7109d5ddeb0c |
line wrap: on
line source
test command parsing and dispatch $ hg init a $ cd a Redundant options used to crash (issue436): $ hg -v log -v $ hg -v log -v x $ echo a > a $ hg ci -Ama adding a Missing arg: $ hg cat hg cat: invalid arguments hg cat [OPTION]... FILE... output the current or given revision of files options ([+] can be repeated): -o --output FORMAT print output to file with formatted name -r --rev REV print the given revision --decode apply any matching decode filter -I --include PATTERN [+] include names matching the given patterns -X --exclude PATTERN [+] exclude names matching the given patterns (use "hg cat -h" to show more help) [255] [defaults] $ hg cat a a $ cat >> $HGRCPATH <<EOF > [defaults] > cat = -r null > EOF $ hg cat a a: no such file in rev 000000000000 [1] $ cd "$TESTTMP" OSError "No such file or directory" / "The system cannot find the path specified" should include filename even when it is empty $ hg -R a archive '' abort: *: '' (glob) [255] #if no-outer-repo No repo: $ hg cat abort: no repository found in '$TESTTMP' (.hg not found)! [255] #endif