412 createdfiledirs = set() |
412 createdfiledirs = set() |
413 |
413 |
414 # The set of files deleted by all the actions. |
414 # The set of files deleted by all the actions. |
415 deletedfiles = set() |
415 deletedfiles = set() |
416 |
416 |
417 for f, (m, args, msg) in mresult.actions.items(): |
417 for (f, args, msg) in mresult.getactions( |
418 if m in ( |
418 ( |
419 mergestatemod.ACTION_CREATED, |
419 mergestatemod.ACTION_CREATED, |
420 mergestatemod.ACTION_DELETED_CHANGED, |
420 mergestatemod.ACTION_DELETED_CHANGED, |
421 mergestatemod.ACTION_MERGE, |
421 mergestatemod.ACTION_MERGE, |
422 mergestatemod.ACTION_CREATED_MERGE, |
422 mergestatemod.ACTION_CREATED_MERGE, |
423 ): |
423 ) |
424 # This action may create a new local file. |
424 ): |
425 createdfiledirs.update(pathutil.finddirs(f)) |
425 # This action may create a new local file. |
426 if mf.hasdir(f): |
426 createdfiledirs.update(pathutil.finddirs(f)) |
427 # The file aliases a local directory. This might be ok if all |
427 if mf.hasdir(f): |
428 # the files in the local directory are being deleted. This |
428 # The file aliases a local directory. This might be ok if all |
429 # will be checked once we know what all the deleted files are. |
429 # the files in the local directory are being deleted. This |
430 remoteconflicts.add(f) |
430 # will be checked once we know what all the deleted files are. |
431 # Track the names of all deleted files. |
431 remoteconflicts.add(f) |
432 if m == mergestatemod.ACTION_REMOVE: |
432 # Track the names of all deleted files. |
433 deletedfiles.add(f) |
433 for (f, args, msg) in mresult.getactions((mergestatemod.ACTION_REMOVE,)): |
434 if m == mergestatemod.ACTION_MERGE: |
434 deletedfiles.add(f) |
435 f1, f2, fa, move, anc = args |
435 for (f, args, msg) in mresult.getactions((mergestatemod.ACTION_MERGE,)): |
436 if move: |
436 f1, f2, fa, move, anc = args |
437 deletedfiles.add(f1) |
437 if move: |
438 if m == mergestatemod.ACTION_DIR_RENAME_MOVE_LOCAL: |
438 deletedfiles.add(f1) |
439 f2, flags = args |
439 for (f, args, msg) in mresult.getactions( |
440 deletedfiles.add(f2) |
440 (mergestatemod.ACTION_DIR_RENAME_MOVE_LOCAL,) |
|
441 ): |
|
442 f2, flags = args |
|
443 deletedfiles.add(f2) |
441 |
444 |
442 # Check all directories that contain created files for path conflicts. |
445 # Check all directories that contain created files for path conflicts. |
443 for p in createdfiledirs: |
446 for p in createdfiledirs: |
444 if p in mf: |
447 if p in mf: |
445 if p in mctx: |
448 if p in mctx: |