From be35a1685bc33be021d10e47c5243a0cbdb25099 Mon Sep 17 00:00:00 2001 From: Phil Cohen Date: Tue, 12 Sep 2017 19:27:01 -0700 Subject: [PATCH] merge: move cwd-missing detection to helper functions This will exist in two places with defered writes, so we want to avoid duplication. Differential Revision: https://phab.mercurial-scm.org/D626 --- mercurial/merge.py | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/mercurial/merge.py b/mercurial/merge.py index 1ec0f93822..a7dea60c14 100644 --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -1084,18 +1084,21 @@ def calculateupdates(repo, wctx, mctx, ancestors, branchmerge, force, return prunedactions, diverge, renamedelete +def _getcwd(): + try: + return pycompat.getcwd() + except OSError as err: + if err.errno == errno.ENOENT: + return None + raise + def batchremove(repo, wctx, actions): """apply removes to the working directory yields tuples for progress updates """ verbose = repo.ui.verbose - try: - cwd = pycompat.getcwd() - except OSError as err: - if err.errno != errno.ENOENT: - raise - cwd = None + cwd = _getcwd() i = 0 for f, args, msg in actions: repo.ui.debug(" %s: %s -> r\n" % (f, msg)) @@ -1113,18 +1116,12 @@ def batchremove(repo, wctx, actions): i += 1 if i > 0: yield i, f - if cwd: - # cwd was present before we started to remove files - # let's check if it is present after we removed them - try: - pycompat.getcwd() - except OSError as err: - if err.errno != errno.ENOENT: - raise - # Print a warning if cwd was deleted - repo.ui.warn(_("current directory was removed\n" - "(consider changing to repo root: %s)\n") % - repo.root) + + if cwd and not _getcwd(): + # cwd was removed in the course of removing files; print a helpful + # warning. + repo.ui.warn(_("current directory was removed\n" + "(consider changing to repo root: %s)\n") % repo.root) # It's necessary to flush here in case we're inside a worker fork and will # quit after this function.