[Request] [+- ] D8884: merge: rework iteration over mergeresult object in checkpathconflicts()
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Wed Aug 5 08:53:55 UTC 2020
pulkit created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
Instead of following pattern:
for f, (m, args, msg) in mresult.actions.items():
if m == mergestatemod.ACTION_*:
...
elif m == mergestatemod.ACTION_*:
...
....
We do:
for (f, args, msg) in mresult.getaction((mergestatemod.ACTION_*,)):
...
for (f, args, msg) in mresult.getaction((mergestatemod.ACTION_*,)):
...
....
This makes code bit easier to understand and prevent iterating over actions
which we don't need.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8884
AFFECTED FILES
mercurial/merge.py
CHANGE DETAILS
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -414,30 +414,33 @@
# The set of files deleted by all the actions.
deletedfiles = set()
- for f, (m, args, msg) in mresult.actions.items():
- if m in (
+ for (f, args, msg) in mresult.getactions(
+ (
mergestatemod.ACTION_CREATED,
mergestatemod.ACTION_DELETED_CHANGED,
mergestatemod.ACTION_MERGE,
mergestatemod.ACTION_CREATED_MERGE,
- ):
- # This action may create a new local file.
- createdfiledirs.update(pathutil.finddirs(f))
- if mf.hasdir(f):
- # The file aliases a local directory. This might be ok if all
- # the files in the local directory are being deleted. This
- # will be checked once we know what all the deleted files are.
- remoteconflicts.add(f)
- # Track the names of all deleted files.
- if m == mergestatemod.ACTION_REMOVE:
- deletedfiles.add(f)
- if m == mergestatemod.ACTION_MERGE:
- f1, f2, fa, move, anc = args
- if move:
- deletedfiles.add(f1)
- if m == mergestatemod.ACTION_DIR_RENAME_MOVE_LOCAL:
- f2, flags = args
- deletedfiles.add(f2)
+ )
+ ):
+ # This action may create a new local file.
+ createdfiledirs.update(pathutil.finddirs(f))
+ if mf.hasdir(f):
+ # The file aliases a local directory. This might be ok if all
+ # the files in the local directory are being deleted. This
+ # will be checked once we know what all the deleted files are.
+ remoteconflicts.add(f)
+ # Track the names of all deleted files.
+ for (f, args, msg) in mresult.getactions((mergestatemod.ACTION_REMOVE,)):
+ deletedfiles.add(f)
+ for (f, args, msg) in mresult.getactions((mergestatemod.ACTION_MERGE,)):
+ f1, f2, fa, move, anc = args
+ if move:
+ deletedfiles.add(f1)
+ for (f, args, msg) in mresult.getactions(
+ (mergestatemod.ACTION_DIR_RENAME_MOVE_LOCAL,)
+ ):
+ f2, flags = args
+ deletedfiles.add(f2)
# Check all directories that contain created files for path conflicts.
for p in createdfiledirs:
To: pulkit, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200805/ec214695/attachment-0001.html>
More information about the Mercurial-patches
mailing list