mercurial/merge.py
changeset 34142 24bf823377fc
parent 34125 57dc78d757ff
child 34302 440ece43024c
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