comparison mercurial/merge.py @ 34142: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 57dc78d757ff
children 440ece43024c
comparison
equal deleted inserted replaced
34141:9b4d7d4855f5 34142:24bf823377fc
1082 prunedactions = sparse.filterupdatesactions(repo, wctx, mctx, branchmerge, 1082 prunedactions = sparse.filterupdatesactions(repo, wctx, mctx, branchmerge,
1083 actions) 1083 actions)
1084 1084
1085 return prunedactions, diverge, renamedelete 1085 return prunedactions, diverge, renamedelete
1086 1086
1087 def _getcwd():
1088 try:
1089 return pycompat.getcwd()
1090 except OSError as err:
1091 if err.errno == errno.ENOENT:
1092 return None
1093 raise
1094
1087 def batchremove(repo, wctx, actions): 1095 def batchremove(repo, wctx, actions):
1088 """apply removes to the working directory 1096 """apply removes to the working directory
1089 1097
1090 yields tuples for progress updates 1098 yields tuples for progress updates
1091 """ 1099 """
1092 verbose = repo.ui.verbose 1100 verbose = repo.ui.verbose
1093 try: 1101 cwd = _getcwd()
1094 cwd = pycompat.getcwd()
1095 except OSError as err:
1096 if err.errno != errno.ENOENT:
1097 raise
1098 cwd = None
1099 i = 0 1102 i = 0
1100 for f, args, msg in actions: 1103 for f, args, msg in actions:
1101 repo.ui.debug(" %s: %s -> r\n" % (f, msg)) 1104 repo.ui.debug(" %s: %s -> r\n" % (f, msg))
1102 if verbose: 1105 if verbose:
1103 repo.ui.note(_("removing %s\n") % f) 1106 repo.ui.note(_("removing %s\n") % f)
1111 yield i, f 1114 yield i, f
1112 i = 0 1115 i = 0
1113 i += 1 1116 i += 1
1114 if i > 0: 1117 if i > 0:
1115 yield i, f 1118 yield i, f
1116 if cwd: 1119
1117 # cwd was present before we started to remove files 1120 if cwd and not _getcwd():
1118 # let's check if it is present after we removed them 1121 # cwd was removed in the course of removing files; print a helpful
1119 try: 1122 # warning.
1120 pycompat.getcwd() 1123 repo.ui.warn(_("current directory was removed\n"
1121 except OSError as err: 1124 "(consider changing to repo root: %s)\n") % repo.root)
1122 if err.errno != errno.ENOENT:
1123 raise
1124 # Print a warning if cwd was deleted
1125 repo.ui.warn(_("current directory was removed\n"
1126 "(consider changing to repo root: %s)\n") %
1127 repo.root)
1128 1125
1129 # It's necessary to flush here in case we're inside a worker fork and will 1126 # It's necessary to flush here in case we're inside a worker fork and will
1130 # quit after this function. 1127 # quit after this function.
1131 wctx.flushall() 1128 wctx.flushall()
1132 1129