diff options
author | Akshay Verma <akshayverma948@gmail.com> | 2018-03-24 12:27:05 +0530 |
---|---|---|
committer | Akshay Verma <akshayverma948@gmail.com> | 2018-03-24 13:00:08 +0530 |
commit | 0f2e45a3a69e9a99d91ed26768b82e3454aa8630 (patch) | |
tree | 2fb293f8eae00cfe80c47bf067a61d164f6e03d9 | |
parent | cf7c0834cfc24c5c9584695c657c6baf97d0fbb3 (diff) | |
download | git-repo-0f2e45a3a69e9a99d91ed26768b82e3454aa8630.tar.gz |
Pass refs to ls-remote
This will fix the issue of parsing large output locally
Change-Id: I9a5cf1238147a02c92a3fca53eab9bd57f9d16b4
-rwxr-xr-x | project.py | 4 | ||||
-rwxr-xr-x | subcmds/download.py | 5 |
2 files changed, 5 insertions, 4 deletions
@@ -2270,8 +2270,8 @@ 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): | 2273 | def _LsRemote(self, refs): |
2274 | cmd = ['ls-remote'] | 2274 | cmd = ['ls-remote', self.remote.name, refs] |
2275 | p = GitCommand(self, cmd, capture_stdout=True) | 2275 | p = GitCommand(self, cmd, capture_stdout=True) |
2276 | if p.Wait() == 0: | 2276 | if p.Wait() == 0: |
2277 | if hasattr(p.stdout, 'decode'): | 2277 | if hasattr(p.stdout, 'decode'): |
diff --git a/subcmds/download.py b/subcmds/download.py index 384af781..dba70ffd 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. | |||
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) | 65 | refs = 'refs/changes/%2.2d/%d/' % (chg_id % 100, chg_id) |
66 | output = project._LsRemote() | 66 | output = project._LsRemote(refs + '*') |
67 | if output: | 67 | if output: |
68 | regex = refs + r'(\d+)' | ||
68 | rcomp = re.compile(regex, re.I) | 69 | rcomp = re.compile(regex, re.I) |
69 | for line in output.splitlines(): | 70 | for line in output.splitlines(): |
70 | match = rcomp.search(line) | 71 | match = rcomp.search(line) |