Mercurial > public > mercurial-scm > hg
comparison mercurial/merge.py @ 28018:3feadb0b6c34
merge: move abort/warn checks up to the top level of _checkunknownfiles
In upcoming patches, we're also going to do these checks when force is True.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Mon, 01 Feb 2016 20:28:32 -0800 |
parents | 8abd9f785030 |
children | e81d11794036 |
comparison
equal
deleted
inserted
replaced
28017:d3f1b7ee5e70 | 28018:3feadb0b6c34 |
---|---|
608 Considers any actions that care about the presence of conflicting unknown | 608 Considers any actions that care about the presence of conflicting unknown |
609 files. For some actions, the result is to abort; for others, it is to | 609 files. For some actions, the result is to abort; for others, it is to |
610 choose a different action. | 610 choose a different action. |
611 """ | 611 """ |
612 conflicts = set() | 612 conflicts = set() |
613 warnconflicts = set() | |
614 abortconflicts = set() | |
615 unknownconfig = _getcheckunknownconfig(repo, 'merge', 'checkunknown') | |
616 ignoredconfig = _getcheckunknownconfig(repo, 'merge', 'checkignored') | |
613 if not force: | 617 if not force: |
614 abortconflicts = set() | |
615 warnconflicts = set() | |
616 def collectconflicts(conflicts, config): | 618 def collectconflicts(conflicts, config): |
617 if config == 'abort': | 619 if config == 'abort': |
618 abortconflicts.update(conflicts) | 620 abortconflicts.update(conflicts) |
619 elif config == 'warn': | 621 elif config == 'warn': |
620 warnconflicts.update(conflicts) | 622 warnconflicts.update(conflicts) |
621 | 623 |
622 unknownconfig = _getcheckunknownconfig(repo, 'merge', 'checkunknown') | |
623 ignoredconfig = _getcheckunknownconfig(repo, 'merge', 'checkignored') | |
624 for f, (m, args, msg) in actions.iteritems(): | 624 for f, (m, args, msg) in actions.iteritems(): |
625 if m in ('c', 'dc'): | 625 if m in ('c', 'dc'): |
626 if _checkunknownfile(repo, wctx, mctx, f): | 626 if _checkunknownfile(repo, wctx, mctx, f): |
627 conflicts.add(f) | 627 conflicts.add(f) |
628 elif m == 'dg': | 628 elif m == 'dg': |
632 ignoredconflicts = set([c for c in conflicts | 632 ignoredconflicts = set([c for c in conflicts |
633 if repo.dirstate._ignore(c)]) | 633 if repo.dirstate._ignore(c)]) |
634 unknownconflicts = conflicts - ignoredconflicts | 634 unknownconflicts = conflicts - ignoredconflicts |
635 collectconflicts(ignoredconflicts, ignoredconfig) | 635 collectconflicts(ignoredconflicts, ignoredconfig) |
636 collectconflicts(unknownconflicts, unknownconfig) | 636 collectconflicts(unknownconflicts, unknownconfig) |
637 for f in sorted(abortconflicts): | 637 |
638 repo.ui.warn(_("%s: untracked file differs\n") % f) | 638 for f in sorted(abortconflicts): |
639 if abortconflicts: | 639 repo.ui.warn(_("%s: untracked file differs\n") % f) |
640 raise error.Abort(_("untracked files in working directory " | 640 if abortconflicts: |
641 "differ from files in requested revision")) | 641 raise error.Abort(_("untracked files in working directory " |
642 | 642 "differ from files in requested revision")) |
643 for f in sorted(warnconflicts): | 643 |
644 repo.ui.warn(_("%s: replacing untracked file\n") % f) | 644 for f in sorted(warnconflicts): |
645 repo.ui.warn(_("%s: replacing untracked file\n") % f) | |
645 | 646 |
646 for f, (m, args, msg) in actions.iteritems(): | 647 for f, (m, args, msg) in actions.iteritems(): |
647 backup = f in conflicts | 648 backup = f in conflicts |
648 if m == 'c': | 649 if m == 'c': |
649 flags, = args | 650 flags, = args |