Index: tracdarcs/repository.py
===================================================================
--- tracdarcs/repository.py	(revision 208)
+++ tracdarcs/repository.py	(revision 209)
@@ -655,5 +655,6 @@
                   (self.__hash,))
         eqcsets = [(repo, rev) for repo,rev in c.fetchall()]
-        props['PresentIn'] = eqcsets
+        if eqcsets:
+            props['PresentIn'] = eqcsets
 
         # Compute the opposite list, that is the repositories where
@@ -672,5 +673,6 @@
                   (self.__hash,))
         mir = [r[0] for r in c.fetchall()]
-        props['MissingIn'] = mir
+        if mir:
+            props['MissingIn'] = mir
 
         return props
Index: tracdarcs/components.py
===================================================================
--- tracdarcs/components.py	(revision 208)
+++ tracdarcs/components.py	(revision 210)
@@ -325,2 +325,21 @@
                                 content=tag([(repo, ', ') for repo in mir[:-1]],
                                             mir[-1]))
+
+
+class HashnameRenderer(Component):
+    """Handle the `Hashname` changesets property."""
+
+    implements(IPropertyRenderer)
+
+    def match_property(self, name, mode):
+        return (mode == 'revprop' and name == 'Hashname') and 5 or 0
+
+    def render_property(self, name, mode, context, props):
+        hash = props[name]
+        repos = context.resource.parent.id
+        link = tag.a(hash, class_="changeset",
+                     title="Permanent link to this changeset",
+                     href=context.href.changeset(hash, repos))
+        return RenderedProperty(name='Hash name:',
+                                name_attributes=[("class", "property")],
+                                content=link)
