diff options
Diffstat (limited to 'subcmds/download.py')
-rw-r--r-- | subcmds/download.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/subcmds/download.py b/subcmds/download.py index c0c47dd9..81d997e0 100644 --- a/subcmds/download.py +++ b/subcmds/download.py | |||
@@ -16,7 +16,7 @@ import re | |||
16 | import sys | 16 | import sys |
17 | 17 | ||
18 | from command import Command | 18 | from command import Command |
19 | from error import GitError | 19 | from error import GitError, NoSuchProjectError |
20 | 20 | ||
21 | CHANGE_RE = re.compile(r'^([1-9][0-9]*)(?:[/\.-]([1-9][0-9]*))?$') | 21 | CHANGE_RE = re.compile(r'^([1-9][0-9]*)(?:[/\.-]([1-9][0-9]*))?$') |
22 | 22 | ||
@@ -60,6 +60,7 @@ If no project is specified try to use current directory as a project. | |||
60 | if m: | 60 | if m: |
61 | if not project: | 61 | if not project: |
62 | project = self.GetProjects(".")[0] | 62 | project = self.GetProjects(".")[0] |
63 | print('Defaulting to cwd project', project.name) | ||
63 | chg_id = int(m.group(1)) | 64 | chg_id = int(m.group(1)) |
64 | if m.group(2): | 65 | if m.group(2): |
65 | ps_id = int(m.group(2)) | 66 | ps_id = int(m.group(2)) |
@@ -76,7 +77,23 @@ If no project is specified try to use current directory as a project. | |||
76 | ps_id = max(int(match.group(1)), ps_id) | 77 | ps_id = max(int(match.group(1)), ps_id) |
77 | to_get.append((project, chg_id, ps_id)) | 78 | to_get.append((project, chg_id, ps_id)) |
78 | else: | 79 | else: |
79 | project = self.GetProjects([a])[0] | 80 | projects = self.GetProjects([a]) |
81 | if len(projects) > 1: | ||
82 | # If the cwd is one of the projects, assume they want that. | ||
83 | try: | ||
84 | project = self.GetProjects('.')[0] | ||
85 | except NoSuchProjectError: | ||
86 | project = None | ||
87 | if project not in projects: | ||
88 | print('error: %s matches too many projects; please re-run inside ' | ||
89 | 'the project checkout.' % (a,), file=sys.stderr) | ||
90 | for project in projects: | ||
91 | print(' %s/ @ %s' % (project.relpath, project.revisionExpr), | ||
92 | file=sys.stderr) | ||
93 | sys.exit(1) | ||
94 | else: | ||
95 | project = projects[0] | ||
96 | print('Defaulting to cwd project', project.name) | ||
80 | return to_get | 97 | return to_get |
81 | 98 | ||
82 | def ValidateOptions(self, opt, args): | 99 | def ValidateOptions(self, opt, args): |