##// END OF EJS Templates
ui: change default path fallback mechanism (issue4796)...
Gregory Szorc -
r26189:663fbc33 default
parent child Browse files
Show More
@@ -550,9 +550,21 b' class ui(object):'
550
550
551 def expandpath(self, loc, default=None):
551 def expandpath(self, loc, default=None):
552 """Return repository location relative to cwd or from [paths]"""
552 """Return repository location relative to cwd or from [paths]"""
553 p = self.paths.getpath(loc, default=default)
553 try:
554 if p:
554 p = self.paths.getpath(loc)
555 return p.rawloc
555 if p:
556 return p.rawloc
557 except error.RepoError:
558 pass
559
560 if default:
561 try:
562 p = self.paths.getpath(default)
563 if p:
564 return p.rawloc
565 except error.RepoError:
566 pass
567
556 return loc
568 return loc
557
569
558 @util.propertycache
570 @util.propertycache
@@ -1014,9 +1026,24 b' class paths(dict):'
1014 ``name`` can be a named path or locations. Locations are filesystem
1026 ``name`` can be a named path or locations. Locations are filesystem
1015 paths or URIs.
1027 paths or URIs.
1016
1028
1017 Returns the first of ``name`` or ``default`` that is present, or None
1029 Returns None if ``name`` is not a registered path, a URI, or a local
1018 if neither is present.
1030 path to a repo.
1019 """
1031 """
1032 # Only fall back to default if no path was requested.
1033 if name is None:
1034 if default:
1035 try:
1036 return self[default]
1037 except KeyError:
1038 return None
1039 else:
1040 return None
1041
1042 # Most likely empty string.
1043 # This may need to raise in the future.
1044 if not name:
1045 return None
1046
1020 try:
1047 try:
1021 return self[name]
1048 return self[name]
1022 except KeyError:
1049 except KeyError:
@@ -1024,15 +1051,10 b' class paths(dict):'
1024 try:
1051 try:
1025 return path(None, rawloc=name)
1052 return path(None, rawloc=name)
1026 except ValueError:
1053 except ValueError:
1027 pass
1054 raise error.RepoError(_('repository %s does not exist') %
1055 name)
1028
1056
1029 if default is not None:
1057 assert False
1030 try:
1031 return self[default]
1032 except KeyError:
1033 pass
1034
1035 return None
1036
1058
1037 class path(object):
1059 class path(object):
1038 """Represents an individual path and its configuration."""
1060 """Represents an individual path and its configuration."""
@@ -45,3 +45,9 b" Push should push to 'default-push' when "
45 adding manifests
45 adding manifests
46 adding file changes
46 adding file changes
47 added 1 changesets with 1 changes to 1 files
47 added 1 changesets with 1 changes to 1 files
48
49 Pushing to a path that isn't defined should not fall back to default
50
51 $ hg --cwd b push doesnotexist
52 abort: repository doesnotexist does not exist!
53 [255]
General Comments 0
You need to be logged in to leave comments. Login now