Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/cmdutil.py @ 4825:3cf94964c56b
hg log: Move filtering implicit parents to own method and use it in templater.
Extended test repo in test-command-template to contain changeset to test this.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Sun, 08 Jul 2007 12:52:08 +0200 |
parents | f3f84d5cd268 |
children | 0e2d0a78f81a |
comparison
equal
deleted
inserted
replaced
4824:f3f84d5cd268 | 4825:3cf94964c56b |
---|---|
756 extra = changes[5] | 756 extra = changes[5] |
757 branch = extra.get("branch") | 757 branch = extra.get("branch") |
758 | 758 |
759 hexfunc = self.ui.debugflag and hex or short | 759 hexfunc = self.ui.debugflag and hex or short |
760 | 760 |
761 parents = log.parentrevs(rev) | 761 parents = [(p, hexfunc(log.node(p))) |
762 if not self.ui.debugflag: | 762 for p in self._meaningful_parentrevs(log, rev)] |
763 if parents[1] == nullrev: | |
764 if parents[0] >= rev - 1: | |
765 parents = [] | |
766 else: | |
767 parents = [parents[0]] | |
768 parents = [(p, hexfunc(log.node(p))) for p in parents] | |
769 | 763 |
770 self.ui.write(_("changeset: %d:%s\n") % (rev, hexfunc(changenode))) | 764 self.ui.write(_("changeset: %d:%s\n") % (rev, hexfunc(changenode))) |
771 | 765 |
772 # don't show the default branch name | 766 # don't show the default branch name |
773 if branch != 'default': | 767 if branch != 'default': |
820 if self.patch: | 814 if self.patch: |
821 prev = self.repo.changelog.parents(node)[0] | 815 prev = self.repo.changelog.parents(node)[0] |
822 patch.diff(self.repo, prev, node, match=self.patch, fp=self.ui, | 816 patch.diff(self.repo, prev, node, match=self.patch, fp=self.ui, |
823 opts=patch.diffopts(self.ui)) | 817 opts=patch.diffopts(self.ui)) |
824 self.ui.write("\n") | 818 self.ui.write("\n") |
819 | |
820 def _meaningful_parentrevs(self, log, rev): | |
821 """Return list of meaningful (or all if debug) parentrevs for rev. | |
822 | |
823 For merges (two non-nullrev revisions) both parents are meaningful. | |
824 Otherwise the first parent revision is considered meaningful if it | |
825 is not the preceding revision. | |
826 """ | |
827 parents = log.parentrevs(rev) | |
828 if not self.ui.debugflag and parents[1] == nullrev: | |
829 if parents[0] >= rev - 1: | |
830 parents = [] | |
831 else: | |
832 parents = [parents[0]] | |
833 return parents | |
834 | |
825 | 835 |
826 class changeset_templater(changeset_printer): | 836 class changeset_templater(changeset_printer): |
827 '''format changeset information.''' | 837 '''format changeset information.''' |
828 | 838 |
829 def __init__(self, ui, repo, patch, mapfile, buffered): | 839 def __init__(self, ui, repo, patch, mapfile, buffered): |
917 if branch != 'default': | 927 if branch != 'default': |
918 branch = util.tolocal(branch) | 928 branch = util.tolocal(branch) |
919 return showlist('branch', [branch], plural='branches', **args) | 929 return showlist('branch', [branch], plural='branches', **args) |
920 | 930 |
921 def showparents(**args): | 931 def showparents(**args): |
922 parents = [[('rev', log.rev(p)), ('node', hex(p))] | 932 parents = [[('rev', p), ('node', hex(log.node(p)))] |
923 for p in log.parents(changenode) | 933 for p in self._meaningful_parentrevs(log, rev)] |
924 if self.ui.debugflag or p != nullid] | |
925 if (not self.ui.debugflag and len(parents) == 1 and | |
926 parents[0][0][1] == rev - 1): | |
927 return | |
928 return showlist('parent', parents, **args) | 934 return showlist('parent', parents, **args) |
929 | 935 |
930 def showtags(**args): | 936 def showtags(**args): |
931 return showlist('tag', self.repo.nodetags(changenode), **args) | 937 return showlist('tag', self.repo.nodetags(changenode), **args) |
932 | 938 |