diff options
| -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): |
