##// END OF EJS Templates
revert: call status against revert target too...
Pierre-Yves David -
r22155:53039062 default
parent child Browse files
Show More
@@ -2366,10 +2366,30 b' def revert(ui, repo, ctx, parents, *pats'
2366 # get the list of subrepos that must be reverted
2366 # get the list of subrepos that must be reverted
2367 targetsubs = sorted(s for s in ctx.substate if m(s))
2367 targetsubs = sorted(s for s in ctx.substate if m(s))
2368
2368
2369 # Find status of all file in `names`. (Against working directory parent)
2369 # Find status of all file in `names`.
2370 m = scmutil.matchfiles(repo, names)
2370 m = scmutil.matchfiles(repo, names)
2371 changes = repo.status(node1=parent, match=m)[:4]
2371
2372 dsmodified, dsadded, dsremoved, dsdeleted = map(set, changes)
2372 changes = repo.status(node1=node, match=m, clean=True)
2373 modified = set(changes[0])
2374 added = set(changes[1])
2375 removed = set(changes[2])
2376 deleted = set(changes[3])
2377
2378 # We need to account for the state of file in the dirstate
2379 #
2380 # Even, when we revert agains something else than parent. this will
2381 # slightly alter the behavior of revert (doing back up or not, delete
2382 # or just forget etc)
2383 if parent == node:
2384 dsmodified = modified
2385 dsadded = added
2386 dsremoved = removed
2387 modified, added, removed = set(), set(), set()
2388 else:
2389 changes = repo.status(node1=parent, match=m)
2390 dsmodified = set(changes[0])
2391 dsadded = set(changes[1])
2392 dsremoved = set(changes[2])
2373
2393
2374 # if f is a rename, update `names` to also revert the source
2394 # if f is a rename, update `names` to also revert the source
2375 cwd = repo.getcwd()
2395 cwd = repo.getcwd()
@@ -2395,8 +2415,8 b' def revert(ui, repo, ctx, parents, *pats'
2395 dsadded -= missingadded
2415 dsadded -= missingadded
2396 missingremoved = dsremoved - smf
2416 missingremoved = dsremoved - smf
2397 dsremoved -= missingremoved
2417 dsremoved -= missingremoved
2398 missingdeleted = dsdeleted - smf
2418 missingdeleted = deleted - smf
2399 dsdeleted -= missingdeleted
2419 deleted -= missingdeleted
2400
2420
2401 # action to be actually performed by revert
2421 # action to be actually performed by revert
2402 # (<list of file>, message>) tuple
2422 # (<list of file>, message>) tuple
@@ -2416,7 +2436,7 b' def revert(ui, repo, ctx, parents, *pats'
2416 (missingadded, (actions['remove'], False)),
2436 (missingadded, (actions['remove'], False)),
2417 (dsremoved, (actions['undelete'], True)),
2437 (dsremoved, (actions['undelete'], True)),
2418 (missingremoved, (None, False)),
2438 (missingremoved, (None, False)),
2419 (dsdeleted, (actions['revert'], False)),
2439 (deleted, (actions['revert'], False)),
2420 (missingdeleted, (actions['remove'], False)),
2440 (missingdeleted, (actions['remove'], False)),
2421 )
2441 )
2422
2442
General Comments 0
You need to be logged in to leave comments. Login now