D12192: filemerge: reduce some duplication in `_maketempfiles()`
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Feb 16 04:09:52 UTC 2022
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
The two callers of the local `maketempfrompath()` function used the
returned file object in the same way. We can reduce duplication by
moving that code into the function.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D12192
AFFECTED FILES
mercurial/filemerge.py
CHANGE DETAILS
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -19,7 +19,6 @@
)
from .pycompat import (
getattr,
- open,
)
from . import (
@@ -923,30 +922,24 @@
"""
tmproot = pycompat.mkdtemp(prefix=b'hgmerge-')
- def maketempfrompath(prefix, path):
+ def maketempfrompath(prefix, path, data):
fullbase, ext = os.path.splitext(path)
pre = b"%s~%s" % (os.path.basename(fullbase), prefix)
name = os.path.join(tmproot, pre)
if ext:
name += ext
- f = open(name, "wb")
- return f, name
+ util.writefile(name, data)
+ return name
def tempfromcontext(prefix, ctx):
- f, name = maketempfrompath(prefix, ctx.path())
- data = ctx.decodeddata()
- f.write(data)
- f.close()
- return name
+ return maketempfrompath(prefix, ctx.path(), ctx.decodeddata())
b = tempfromcontext(b"base", fca)
c = tempfromcontext(b"other", fco)
d = localpath
if localpath is not None:
- f, d = maketempfrompath(b"local", d)
data = util.readfile(localpath)
- f.write(data)
- f.close()
+ d = maketempfrompath(b"local", localpath, data)
try:
yield b, c, d
To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list