Mercurial > public > mercurial-scm > hg
comparison mercurial/patch.py @ 5265:15a108ad7adb
Avoid a working dir walk while trying to detect copies for diff --git
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Tue, 28 Aug 2007 23:02:41 -0300 |
parents | 0fc16031bb45 |
children | 477136fa6571 |
comparison
equal
deleted
inserted
replaced
5264:0fc16031bb45 | 5265:15a108ad7adb |
---|---|
1167 c = c2 | 1167 c = c2 |
1168 crev = c.rev() | 1168 crev = c.rev() |
1169 if crev is None: | 1169 if crev is None: |
1170 crev = repo.changelog.count() | 1170 crev = repo.changelog.count() |
1171 orig = f | 1171 orig = f |
1172 files = (f,) | |
1172 while crev > startrev: | 1173 while crev > startrev: |
1173 if f in c.files(): | 1174 if f in files: |
1174 try: | 1175 try: |
1175 src = getfilectx(f, c).renamed() | 1176 src = getfilectx(f, c).renamed() |
1176 except revlog.LookupError: | 1177 except revlog.LookupError: |
1177 return None | 1178 return None |
1178 if src: | 1179 if src: |
1179 f = src[0] | 1180 f = src[0] |
1180 crev = c.parents()[0].rev() | 1181 crev = c.parents()[0].rev() |
1181 # try to reuse | 1182 # try to reuse |
1182 c = getctx(crev) | 1183 c = getctx(crev) |
1184 files = c.files() | |
1183 if f not in man: | 1185 if f not in man: |
1184 return None | 1186 return None |
1185 if f == orig: | 1187 if f == orig: |
1186 return False | 1188 return False |
1187 return f | 1189 return f |