comparison mercurial/patch.py @ 5261: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
5260:0fc16031bb45 5261: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