Mercurial > public > mercurial-scm > hg
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 |