mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
7c62588e37
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.
54 lines
1.3 KiB
Perl
54 lines
1.3 KiB
Perl
$ hg init a
|
|
|
|
$ echo a > a/a
|
|
$ hg --cwd a ci -Ama
|
|
adding a
|
|
|
|
$ hg clone a c
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ hg clone a b
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ echo b >> b/a
|
|
$ hg --cwd b ci -mb
|
|
|
|
Push should provide a hint when both 'default' and 'default-push' not set:
|
|
$ cd c
|
|
$ hg push --config paths.default=
|
|
abort: default repository not configured!
|
|
(see the "path" section in "hg help config")
|
|
[255]
|
|
|
|
$ cd ..
|
|
|
|
Push should push to 'default' when 'default-push' not set:
|
|
|
|
$ hg --cwd b push
|
|
pushing to $TESTTMP/a (glob)
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
|
Push should push to 'default-push' when set:
|
|
|
|
$ echo '[paths]' >> b/.hg/hgrc
|
|
$ echo 'default-push = ../c' >> b/.hg/hgrc
|
|
$ hg --cwd b push
|
|
pushing to $TESTTMP/c (glob)
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
|
Pushing to a path that isn't defined should not fall back to default
|
|
|
|
$ hg --cwd b push doesnotexist
|
|
abort: repository doesnotexist does not exist!
|
|
[255]
|