Mercurial > public > mercurial-scm > hg
comparison mercurial/cmdutil.py @ 22230:316ba2ddc034
revset: factorize backup decision
The conditional controlling the creation of backup is fairly big. We move config
related decisions outside of the loop.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Tue, 24 Jun 2014 17:54:33 +0100 |
parents | 3a7b45a0bd20 |
children | 10d9e7908a3c |
comparison
equal
deleted
inserted
replaced
22229:3a7b45a0bd20 | 22230:316ba2ddc034 |
---|---|
2469 actions = {'revert': ([], _('reverting %s\n')), | 2469 actions = {'revert': ([], _('reverting %s\n')), |
2470 'add': ([], _('adding %s\n')), | 2470 'add': ([], _('adding %s\n')), |
2471 'remove': ([], removeforget), | 2471 'remove': ([], removeforget), |
2472 'undelete': ([], _('undeleting %s\n'))} | 2472 'undelete': ([], _('undeleting %s\n'))} |
2473 | 2473 |
2474 | |
2475 # should we do a backup? | |
2476 backup = not opts.get('no_backup') | |
2477 discard = False | |
2478 | |
2474 disptable = ( | 2479 disptable = ( |
2475 # dispatch table: | 2480 # dispatch table: |
2476 # file state | 2481 # file state |
2477 # action | 2482 # action |
2478 # make backup | 2483 # make backup |
2479 (modified, actions['revert'], False), | 2484 (modified, actions['revert'], discard), |
2480 (dsmodified, actions['revert'], True), | 2485 (dsmodified, actions['revert'], backup), |
2481 (dsadded, actions['remove'], True), | 2486 (dsadded, actions['remove'], backup), |
2482 (removed, actions['add'], True), | 2487 (removed, actions['add'], backup), |
2483 (dsremoved, actions['undelete'], True), | 2488 (dsremoved, actions['undelete'], backup), |
2484 (clean, None, False), | 2489 (clean, None, discard), |
2485 ) | 2490 ) |
2486 | 2491 |
2487 for abs, (rel, exact) in sorted(names.items()): | 2492 for abs, (rel, exact) in sorted(names.items()): |
2488 # target file to be touch on disk (relative to cwd) | 2493 # target file to be touch on disk (relative to cwd) |
2489 target = repo.wjoin(abs) | 2494 target = repo.wjoin(abs) |
2496 if xlist is None: | 2501 if xlist is None: |
2497 if exact: | 2502 if exact: |
2498 ui.warn(_('no changes needed to %s\n') % rel) | 2503 ui.warn(_('no changes needed to %s\n') % rel) |
2499 break | 2504 break |
2500 xlist[0].append(abs) | 2505 xlist[0].append(abs) |
2501 if (dobackup and not opts.get('no_backup') and | 2506 if (dobackup and os.path.lexists(target) and |
2502 os.path.lexists(target) and | |
2503 abs in ctx and repo[None][abs].cmp(ctx[abs])): | 2507 abs in ctx and repo[None][abs].cmp(ctx[abs])): |
2504 bakname = "%s.orig" % rel | 2508 bakname = "%s.orig" % rel |
2505 ui.note(_('saving current version of %s as %s\n') % | 2509 ui.note(_('saving current version of %s as %s\n') % |
2506 (rel, bakname)) | 2510 (rel, bakname)) |
2507 if not opts.get('dry_run'): | 2511 if not opts.get('dry_run'): |