30 |
30 |
31 def noderange(repo, revsets): |
31 def noderange(repo, revsets): |
32 """The same as revrange but return node""" |
32 """The same as revrange but return node""" |
33 return map(repo.changelog.node, |
33 return map(repo.changelog.node, |
34 scmutil.revrange(repo, revsets)) |
34 scmutil.revrange(repo, revsets)) |
35 |
|
36 def warnobserrors(orig, ui, repo, *args, **kwargs): |
|
37 """display warning is the command resulted in more instable changeset""" |
|
38 priorunstables = len(repo.revs('unstable()')) |
|
39 priorlatecomers = len(repo.revs('latecomer()')) |
|
40 #print orig, priorunstables |
|
41 #print len(repo.revs('secret() - obsolete()')) |
|
42 try: |
|
43 return orig(ui, repo, *args, **kwargs) |
|
44 finally: |
|
45 newunstables = len(repo.revs('unstable()')) - priorunstables |
|
46 newlatecomers = len(repo.revs('latecomer()')) - priorlatecomers |
|
47 #print orig, newunstables |
|
48 #print len(repo.revs('secret() - obsolete()')) |
|
49 if newunstables > 0: |
|
50 ui.warn(_('%i new unstables changesets\n') % newunstables) |
|
51 if newlatecomers > 0: |
|
52 ui.warn(_('%i new latecomers changesets\n') % newlatecomers) |
|
53 |
35 |
54 ### changeset rewriting logic |
36 ### changeset rewriting logic |
55 ############################# |
37 ############################# |
56 |
38 |
57 def rewrite(repo, old, updates, head, newbases, commitopts): |
39 def rewrite(repo, old, updates, head, newbases, commitopts): |
675 rebase = extensions.find('rebase') |
657 rebase = extensions.find('rebase') |
676 except KeyError: |
658 except KeyError: |
677 rebase = None |
659 rebase = None |
678 raise error.Abort(_('evolution extension require rebase extension.')) |
660 raise error.Abort(_('evolution extension require rebase extension.')) |
679 |
661 |
|
662 for cmd in ['amend', 'kill', 'uncommit']: |
|
663 entry = extensions.wrapcommand(cmdtable, cmd, |
|
664 obsolete.warnobserrors) |
|
665 |
680 entry = extensions.wrapcommand(commands.table, 'commit', commitwrapper) |
666 entry = extensions.wrapcommand(commands.table, 'commit', commitwrapper) |
681 entry[1].append(('o', 'obsolete', [], |
667 entry[1].append(('o', 'obsolete', [], |
682 _("make commit obsolete this revision"))) |
668 _("make commit obsolete this revision"))) |
683 entry = extensions.wrapcommand(commands.table, 'graft', graftwrapper) |
669 entry = extensions.wrapcommand(commands.table, 'graft', graftwrapper) |
684 entry[1].append(('o', 'obsolete', [], |
670 entry[1].append(('o', 'obsolete', [], |
685 _("make graft obsoletes this revision"))) |
671 _("make graft obsoletes this revision"))) |
686 entry[1].append(('O', 'old-obsolete', False, |
672 entry[1].append(('O', 'old-obsolete', False, |
687 _("make graft obsoletes its source"))) |
673 _("make graft obsoletes its source"))) |
688 |
674 |
689 # warning about more obsolete |
|
690 for cmd in ['commit', 'push', 'pull', 'graft', 'phase', 'unbundle']: |
|
691 entry = extensions.wrapcommand(commands.table, cmd, warnobserrors) |
|
692 for cmd in ['amend', 'kill', 'uncommit']: |
|
693 entry = extensions.wrapcommand(cmdtable, cmd, warnobserrors) |
|
694 |
|
695 if rebase is not None: |
|
696 entry = extensions.wrapcommand(rebase.cmdtable, 'rebase', warnobserrors) |
|