Mercurial > hg-stable
changeset 34157:24bf823377fc
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
author | Phil Cohen <phillco@fb.com> |
---|---|
date | Tue, 12 Sep 2017 19:27:01 -0700 |
parents | 9b4d7d4855f5 |
children | 9e4f82bc2b0b |
files | mercurial/merge.py |
diffstat | 1 files changed, 15 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Sun Sep 03 15:09:04 2017 +0900 +++ b/mercurial/merge.py Tue Sep 12 19:27:01 2017 -0700 @@ -1084,18 +1084,21 @@ 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 @@ 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.