diff --git a/tracext/hg/backend.py b/tracext/hg/backend.py
|
a
|
b
|
|
| 103 | 103 | |
| 104 | 104 | def _render_property(self, name, mode, context, props): |
| 105 | 105 | repos, revs = props[name] |
| | 106 | |
| | 107 | if name in ('Parents', 'Children'): |
| | 108 | label = repos.display_rev |
| | 109 | else: |
| | 110 | label = lambda rev: rev |
| | 111 | |
| 106 | 112 | def link(rev): |
| 107 | 113 | chgset = repos.get_changeset(rev) |
| 108 | | return tag.a(rev, class_="changeset", |
| | 114 | return tag.a(label(rev), class_="changeset", |
| 109 | 115 | title=shorten_line(chgset.message), |
| 110 | 116 | href=context.href.changeset(rev, repos.reponame)) |
| | 117 | |
| 111 | 118 | if name == 'Parents' and len(revs) == 2: # merge |
| 112 | 119 | new = context.resource.id |
| 113 | 120 | parent_links = [ |
| … |
… |
|
| 147 | 154 | if name == 'transplant_source': |
| 148 | 155 | try: |
| 149 | 156 | chgset = MercurialChangeset(repos, value) |
| 150 | | link = tag.a(chgset.rev, class_="changeset", |
| | 157 | link = tag.a(repos.display_rev(chgset.rev), class_="changeset", |
| 151 | 158 | title=shorten_line(chgset.message), |
| 152 | | href=context.href.changeset(short(value), |
| | 159 | href=context.href.changeset(hex(value), |
| 153 | 160 | repos.reponame)) |
| 154 | 161 | except LookupError: |
| 155 | 162 | link = tag.a(hex(value), class_="missing changeset", |
| … |
… |
|
| 399 | 406 | self.repo = None |
| 400 | 407 | |
| 401 | 408 | def normalize_path(self, path): |
| 402 | | """Remove leading "/", except for the root""" |
| | 409 | """Remove leading "/", except for the root.""" |
| 403 | 410 | return path and path.strip('/') or '' |
| 404 | 411 | |
| 405 | 412 | def normalize_rev(self, rev): |
| 406 | | """Return the changelog node for the specified rev""" |
| | 413 | """Return the full hash for the specified rev.""" |
| 407 | 414 | if rev is not None: |
| 408 | 415 | rev = str(rev) |
| 409 | | return self.hg_display(self.hg_node(rev)) |
| | 416 | return hex(self.hg_node(rev)) |
| 410 | 417 | |
| 411 | 418 | def short_rev(self, rev): |
| 412 | 419 | """Return the revision number for the specified rev, in compact form. |
| … |
… |
|
| 422 | 429 | return rev # it was already a short rev |
| 423 | 430 | return self.repo.changelog.rev(self.hg_node(rev)) |
| 424 | 431 | |
| | 432 | def display_rev(self, rev): |
| | 433 | return self.hg_display(self.hg_node(rev)) |
| | 434 | |
| 425 | 435 | def get_quickjump_entries(self, rev): |
| 426 | 436 | branches = {} |
| 427 | 437 | closed_branches = {} |
| … |
… |
|
| 524 | 534 | self.hg_node(rev)) |
| 525 | 535 | |
| 526 | 536 | def get_oldest_rev(self): |
| 527 | | return self.hg_display(nullid) |
| | 537 | return hex(nullid) |
| 528 | 538 | |
| 529 | 539 | def get_youngest_rev(self): |
| 530 | | return self.hg_display(self.repo.changelog.tip()) |
| | 540 | return hex(self.repo.changelog.tip()) |
| 531 | 541 | |
| 532 | 542 | def previous_rev(self, rev, path=''): # FIXME: path ignored for now |
| 533 | 543 | n = self.hg_node(rev) |
| 534 | 544 | log = self.repo.changelog |
| 535 | 545 | for p in log.parents(n): |
| 536 | 546 | if p != nullid: |
| 537 | | return self.hg_display(p) # always follow first parent |
| | 547 | return hex(p) # always follow first parent |
| 538 | 548 | |
| 539 | 549 | def next_rev(self, rev, path=''): |
| 540 | 550 | n = self.hg_node(rev) |
| … |
… |
|
| 542 | 552 | fc = filectx(self.repo, path, n) |
| 543 | 553 | if fc: # it is a file |
| 544 | 554 | for child_fc in fc.children(): |
| 545 | | return self.hg_display(child_fc.node()) |
| | 555 | return hex(child_fc.node()) |
| 546 | 556 | else: |
| 547 | 557 | return None |
| 548 | 558 | # it might be a directory (not supported for now) FIXME |
| 549 | 559 | log = self.repo.changelog |
| 550 | 560 | for c in log.children(n): |
| 551 | | return self.hg_display(c) # always follow first child |
| | 561 | return hex(c) # always follow first child |
| 552 | 562 | |
| 553 | 563 | def rev_older_than(self, rev1, rev2): |
| 554 | 564 | log = self.repo.changelog |
| … |
… |
|
| 704 | 714 | self.entries = [] |
| 705 | 715 | node = log.tip() |
| 706 | 716 | else: |
| 707 | | raise NoSuchNode(path, self.repos.hg_display(self.n)) |
| | 717 | raise NoSuchNode(path, hex(self.n)) |
| 708 | 718 | self.time = self.repos.hg_time(log.read(node)[2]) |
| 709 | | rev = self.repos.hg_display(node) |
| | 719 | rev = hex(node) |
| 710 | 720 | Node.__init__(self, self.repos, path, rev, kind) |
| 711 | 721 | self.created_path = path |
| 712 | 722 | self.created_rev = rev |
| … |
… |
|
| 800 | 810 | if entry: |
| 801 | 811 | count += 1 |
| 802 | 812 | yield entry |
| 803 | | entry = (path, self.repos.hg_display(ctx.node()), Changeset.EDIT) |
| | 813 | entry = (path, hex(ctx.node()), Changeset.EDIT) |
| 804 | 814 | if entry: |
| 805 | 815 | if count < limit: |
| 806 | 816 | entry = entry[0:2] + (Changeset.ADD,) |
| … |
… |
|
| 832 | 842 | count += 1 |
| 833 | 843 | yield entry |
| 834 | 844 | n = repo.changelog.node(rev) |
| 835 | | entry = (path, self.repos.hg_display(n), Changeset.EDIT) |
| | 845 | entry = (path, hex(n), Changeset.EDIT) |
| 836 | 846 | if entry: |
| 837 | 847 | if count < limit: |
| 838 | 848 | entry = entry[0:2] + (Changeset.ADD,) |
| … |
… |
|
| 884 | 894 | if len(log_data) > 5: # extended changelog, since [hg 2f35961854fb] |
| 885 | 895 | extra = log_data[5] |
| 886 | 896 | time = repos.hg_time(timeinfo) |
| 887 | | Changeset.__init__(self, repos, repos.hg_display(n), to_unicode(desc), |
| | 897 | Changeset.__init__(self, repos, hex(n), to_unicode(desc), |
| 888 | 898 | to_unicode(user), time) |
| 889 | 899 | self.repos = repos |
| 890 | 900 | self.n = n |
| 891 | 901 | self.manifest_n = manifest |
| 892 | 902 | self.files = files |
| 893 | | self.parents = [repos.hg_display(p) for p in log.parents(n) \ |
| 894 | | if p != nullid] |
| 895 | | self.children = [repos.hg_display(c) for c in log.children(n)] |
| | 903 | self.parents = [hex(p) for p in log.parents(n) if p != nullid] |
| | 904 | self.children = [hex(c) for c in log.children(n)] |
| 896 | 905 | self.tags = [t for t in repos.repo.nodetags(n)] |
| 897 | 906 | self.branch = extra.pop("branch", None) |
| 898 | 907 | self.extra = extra |
| … |
… |
|
| 958 | 967 | if rename_info: |
| 959 | 968 | base_path, base_filenode = rename_info |
| 960 | 969 | base_ctx = repo.filectx(base_path, fileid=base_filenode) |
| 961 | | base_rev = self.repos.hg_display(base_ctx.node()) |
| | 970 | base_rev = hex(base_ctx.node()) |
| 962 | 971 | if base_path in deletions: |
| 963 | 972 | action = Changeset.MOVE |
| 964 | 973 | renames[base_path] = f |