comparison mercurial/copies.py @ 30183:0106f93ca1d5

checkcopies: move 'movewithdir' initialisation right before its usage The 'movewithdir' had a lot of related logic all around the 'mergecopies'. However it is actually never containing anything until the very last loop in that function. We move the (simplified) variable definition there for clarity
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Tue, 11 Oct 2016 02:15:23 +0200
parents 733fb9f7bc92
children 7321c6b0c9fd
comparison
equal deleted inserted replaced
30182:144d8fe266d9 30183:0106f93ca1d5
331 m2 = c2.manifest() 331 m2 = c2.manifest()
332 ma = ca.manifest() 332 ma = ca.manifest()
333 333
334 # see _checkcopies documentation below for these dicts 334 # see _checkcopies documentation below for these dicts
335 copy1, copy2 = {}, {} 335 copy1, copy2 = {}, {}
336 movewithdir1, movewithdir2 = {}, {}
337 fullcopy1, fullcopy2 = {}, {} 336 fullcopy1, fullcopy2 = {}, {}
338 diverge = {} 337 diverge = {}
339 338
340 # find interesting file sets from manifests 339 # find interesting file sets from manifests
341 addedinm1 = m1.filesnotin(ma) 340 addedinm1 = m1.filesnotin(ma)
349 348
350 for f in u2u: 349 for f in u2u:
351 _checkcopies(c2, f, m2, m1, ca, limit, diverge, copy2, fullcopy2) 350 _checkcopies(c2, f, m2, m1, ca, limit, diverge, copy2, fullcopy2)
352 351
353 copy = dict(copy1.items() + copy2.items()) 352 copy = dict(copy1.items() + copy2.items())
354 movewithdir = dict(movewithdir1.items() + movewithdir2.items())
355 fullcopy = dict(fullcopy1.items() + fullcopy2.items()) 353 fullcopy = dict(fullcopy1.items() + fullcopy2.items())
356 354
357 renamedelete = {} 355 renamedelete = {}
358 renamedeleteset = set() 356 renamedeleteset = set()
359 divergeset = set() 357 divergeset = set()
393 repo.ui.debug(" src: '%s' -> dst: '%s' %s\n" % (fullcopy[f], f, 391 repo.ui.debug(" src: '%s' -> dst: '%s' %s\n" % (fullcopy[f], f,
394 note)) 392 note))
395 del divergeset 393 del divergeset
396 394
397 if not fullcopy: 395 if not fullcopy:
398 return copy, movewithdir, diverge, renamedelete 396 return copy, {}, diverge, renamedelete
399 397
400 repo.ui.debug(" checking for directory renames\n") 398 repo.ui.debug(" checking for directory renames\n")
401 399
402 # generate a directory move map 400 # generate a directory move map
403 d1, d2 = c1.dirs(), c2.dirs() 401 d1, d2 = c1.dirs(), c2.dirs()
431 if i in dirmove: 429 if i in dirmove:
432 del dirmove[i] 430 del dirmove[i]
433 del d1, d2, invalid 431 del d1, d2, invalid
434 432
435 if not dirmove: 433 if not dirmove:
436 return copy, movewithdir, diverge, renamedelete 434 return copy, {}, diverge, renamedelete
437 435
438 for d in dirmove: 436 for d in dirmove:
439 repo.ui.debug(" discovered dir src: '%s' -> dst: '%s'\n" % 437 repo.ui.debug(" discovered dir src: '%s' -> dst: '%s'\n" %
440 (d, dirmove[d])) 438 (d, dirmove[d]))
441 439
440 movewithdir = {}
442 # check unaccounted nonoverlapping files against directory moves 441 # check unaccounted nonoverlapping files against directory moves
443 for f in u1r + u2r: 442 for f in u1r + u2r:
444 if f not in fullcopy: 443 if f not in fullcopy:
445 for d in dirmove: 444 for d in dirmove:
446 if f.startswith(d): 445 if f.startswith(d):