diff options
-rwxr-xr-x[-rw-r--r--] | project.py | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | subcmds/download.py | 8 |
2 files changed, 18 insertions, 0 deletions
diff --git a/project.py b/project.py index e4682e6a..5297a5cb 100644..100755 --- a/project.py +++ b/project.py | |||
@@ -2270,6 +2270,16 @@ class Project(object): | |||
2270 | if self._allrefs: | 2270 | if self._allrefs: |
2271 | raise GitError('%s cherry-pick %s ' % (self.name, rev)) | 2271 | raise GitError('%s cherry-pick %s ' % (self.name, rev)) |
2272 | 2272 | ||
2273 | def _LsRemote(self): | ||
2274 | cmd = ['ls-remote'] | ||
2275 | p = GitCommand(self, cmd, capture_stdout=True) | ||
2276 | if p.Wait() == 0: | ||
2277 | if hasattr(p.stdout, 'decode'): | ||
2278 | return p.stdout.decode('utf-8') | ||
2279 | else: | ||
2280 | return p.stdout | ||
2281 | return None | ||
2282 | |||
2273 | def _Revert(self, rev): | 2283 | def _Revert(self, rev): |
2274 | cmd = ['revert'] | 2284 | cmd = ['revert'] |
2275 | cmd.append('--no-edit') | 2285 | cmd.append('--no-edit') |
diff --git a/subcmds/download.py b/subcmds/download.py index e1010aa2..384af781 100644..100755 --- a/subcmds/download.py +++ b/subcmds/download.py | |||
@@ -62,6 +62,14 @@ If no project is specified try to use current directory as a project. | |||
62 | ps_id = int(m.group(2)) | 62 | ps_id = int(m.group(2)) |
63 | else: | 63 | else: |
64 | ps_id = 1 | 64 | ps_id = 1 |
65 | regex = r'refs/changes/%2.2d/%d/(\d+)' % (chg_id % 100, chg_id) | ||
66 | output = project._LsRemote() | ||
67 | if output: | ||
68 | rcomp = re.compile(regex, re.I) | ||
69 | for line in output.splitlines(): | ||
70 | match = rcomp.search(line) | ||
71 | if match: | ||
72 | ps_id = max(int(match.group(1)), ps_id) | ||
65 | to_get.append((project, chg_id, ps_id)) | 73 | to_get.append((project, chg_id, ps_id)) |
66 | else: | 74 | else: |
67 | project = self.GetProjects([a])[0] | 75 | project = self.GetProjects([a])[0] |