Mercurial > hg
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): |