diff --git a/project.py b/project.py index 5297a5cb3..855bd60dd 100755 --- a/project.py +++ b/project.py @@ -2270,8 +2270,8 @@ class Project(object): if self._allrefs: raise GitError('%s cherry-pick %s ' % (self.name, rev)) - def _LsRemote(self): - cmd = ['ls-remote'] + def _LsRemote(self, refs): + cmd = ['ls-remote', self.remote.name, refs] p = GitCommand(self, cmd, capture_stdout=True) if p.Wait() == 0: if hasattr(p.stdout, 'decode'): diff --git a/subcmds/download.py b/subcmds/download.py index 384af7817..dba70ffd0 100755 --- a/subcmds/download.py +++ b/subcmds/download.py @@ -62,9 +62,10 @@ If no project is specified try to use current directory as a project. ps_id = int(m.group(2)) else: ps_id = 1 - regex = r'refs/changes/%2.2d/%d/(\d+)' % (chg_id % 100, chg_id) - output = project._LsRemote() + refs = 'refs/changes/%2.2d/%d/' % (chg_id % 100, chg_id) + output = project._LsRemote(refs + '*') if output: + regex = refs + r'(\d+)' rcomp = re.compile(regex, re.I) for line in output.splitlines(): match = rcomp.search(line)