1241 repo.ui.debug("removing %s\n" % f) |
1241 repo.ui.debug("removing %s\n" % f) |
1242 wctx[f].audit() |
1242 wctx[f].audit() |
1243 wctx[f].remove() |
1243 wctx[f].remove() |
1244 |
1244 |
1245 numupdates = sum(len(l) for m, l in actions.items() if m != 'k') |
1245 numupdates = sum(len(l) for m, l in actions.items() if m != 'k') |
|
1246 z = 0 |
1246 |
1247 |
1247 if [a for a in actions['r'] if a[0] == '.hgsubstate']: |
1248 if [a for a in actions['r'] if a[0] == '.hgsubstate']: |
1248 subrepo.submerge(repo, wctx, mctx, wctx, overwrite, labels) |
1249 subrepo.submerge(repo, wctx, mctx, wctx, overwrite, labels) |
1249 |
1250 |
1250 # remove in parallel (must come first) |
1251 # record path conflicts |
1251 z = 0 |
1252 for f, args, msg in actions['p']: |
|
1253 f1, fo = args |
|
1254 s = repo.ui.status |
|
1255 s(_("%s: path conflict - a file or link has the same name as a " |
|
1256 "directory\n") % f) |
|
1257 if fo == 'l': |
|
1258 s(_("the local file has been renamed to %s\n") % f1) |
|
1259 else: |
|
1260 s(_("the remote file has been renamed to %s\n") % f1) |
|
1261 s(_("resolve manually then use 'hg resolve --mark %s'\n") % f) |
|
1262 ms.addpath(f, f1, fo) |
|
1263 z += 1 |
|
1264 progress(_updating, z, item=f, total=numupdates, unit=_files) |
|
1265 |
|
1266 # remove in parallel (must come before getting) |
1252 prog = worker.worker(repo.ui, 0.001, batchremove, (repo, wctx), |
1267 prog = worker.worker(repo.ui, 0.001, batchremove, (repo, wctx), |
1253 actions['r']) |
1268 actions['r']) |
1254 for i, item in prog: |
1269 for i, item in prog: |
1255 z += i |
1270 z += i |
1256 progress(_updating, z, item=item, total=numupdates, unit=_files) |
1271 progress(_updating, z, item=item, total=numupdates, unit=_files) |
1696 actionbyfile[f] = ('g', (flags, False), "prompt recreating") |
1711 actionbyfile[f] = ('g', (flags, False), "prompt recreating") |
1697 else: |
1712 else: |
1698 del actionbyfile[f] |
1713 del actionbyfile[f] |
1699 |
1714 |
1700 # Convert to dictionary-of-lists format |
1715 # Convert to dictionary-of-lists format |
1701 actions = dict((m, []) for m in 'a am f g cd dc r dm dg m e k'.split()) |
1716 actions = dict((m, []) |
|
1717 for m in 'a am f g cd dc r dm dg m e k p'.split()) |
1702 for f, (m, args, msg) in actionbyfile.iteritems(): |
1718 for f, (m, args, msg) in actionbyfile.iteritems(): |
1703 if m not in actions: |
1719 if m not in actions: |
1704 actions[m] = [] |
1720 actions[m] = [] |
1705 actions[m].append((f, args, msg)) |
1721 actions[m].append((f, args, msg)) |
1706 |
1722 |