comparison mercurial/cmdutil.py @ 10607:f3ac9d6105ee

addremove: add progress support for similarity search
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Mon, 08 Mar 2010 00:00:03 +0100
parents 5868dd69fb03
children 87fce8c5e29d
comparison
equal deleted inserted replaced
10606:5868dd69fb03 10607:f3ac9d6105ee
287 287
288 def findrenames(repo, added, removed, threshold): 288 def findrenames(repo, added, removed, threshold):
289 '''find renamed files -- yields (before, after, score) tuples''' 289 '''find renamed files -- yields (before, after, score) tuples'''
290 copies = {} 290 copies = {}
291 ctx = repo['.'] 291 ctx = repo['.']
292 for r in removed: 292 for i, r in enumerate(removed):
293 repo.ui.progress(_('looking for similarities'), i, total=len(removed))
293 if r not in ctx: 294 if r not in ctx:
294 continue 295 continue
295 fctx = ctx.filectx(r) 296 fctx = ctx.filectx(r)
296 297
297 def score(text): 298 def score(text):
317 for a in added: 318 for a in added:
318 bestscore = copies.get(a, (None, threshold))[1] 319 bestscore = copies.get(a, (None, threshold))[1]
319 myscore = score(repo.wread(a)) 320 myscore = score(repo.wread(a))
320 if myscore >= bestscore: 321 if myscore >= bestscore:
321 copies[a] = (r, myscore) 322 copies[a] = (r, myscore)
323 repo.ui.progress(_('looking for similarities'), None, total=len(removed))
322 324
323 for dest, v in copies.iteritems(): 325 for dest, v in copies.iteritems():
324 source, score = v 326 source, score = v
325 yield source, dest, score 327 yield source, dest, score
326 328