summaryrefslogtreecommitdiffstats
path: root/project.py
diff options
context:
space:
mode:
authorheping <tdihp@hotmail.com>2017-04-12 19:51:47 +0800
committerheping <tdihp@hotmail.com>2017-04-12 20:04:47 +0800
commit3d7bbc9edf2e6714c58f72a053b182d3c7a160bf (patch)
treec7a8eda2e7ceb01fd5bf7aa62146164bc71abf2e /project.py
parentffb4b890997b1799f188ec44f005d949feb643a7 (diff)
downloadgit-repo-3d7bbc9edf2e6714c58f72a053b182d3c7a160bf.tar.gz
project.py: fix performance issue with --reference when the mirrored repository has many refs
Change-Id: Id0183903597f872eee80ca32a8050125b187a3d4
Diffstat (limited to 'project.py')
-rw-r--r--project.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/project.py b/project.py
index 0d60fc6e..ae771c42 100644
--- a/project.py
+++ b/project.py
@@ -1963,15 +1963,17 @@ class Project(object):
1963 ids.add(ref_id) 1963 ids.add(ref_id)
1964 tmp.add(r) 1964 tmp.add(r)
1965 1965
1966 tmp_packed = '' 1966 tmp_packed_lines = []
1967 old_packed = '' 1967 old_packed_lines = []
1968 1968
1969 for r in sorted(all_refs): 1969 for r in sorted(all_refs):
1970 line = '%s %s\n' % (all_refs[r], r) 1970 line = '%s %s\n' % (all_refs[r], r)
1971 tmp_packed += line 1971 tmp_packed_lines.append(line)
1972 if r not in tmp: 1972 if r not in tmp:
1973 old_packed += line 1973 old_packed_lines.append(line)
1974 1974
1975 tmp_packed = ''.join(tmp_packed_lines)
1976 old_packed = ''.join(old_packed_lines)
1975 _lwrite(packed_refs, tmp_packed) 1977 _lwrite(packed_refs, tmp_packed)
1976 else: 1978 else:
1977 alt_dir = None 1979 alt_dir = None