Bladeren bron

Pass refs to ls-remote

This will fix the issue of parsing large output locally

Change-Id: I9a5cf1238147a02c92a3fca53eab9bd57f9d16b4
Akshay Verma 7 jaren geleden
bovenliggende
commit
0f2e45a3a6
2 gewijzigde bestanden met toevoegingen van 5 en 4 verwijderingen
  1. 2 2
      project.py
  2. 3 2
      subcmds/download.py

+ 2 - 2
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'):

+ 3 - 2
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)