[obsolete] Update pushkey code
diff --git a/hgext/obsolete.py b/hgext/obsolete.py --- a/hgext/obsolete.py +++ b/hgext/obsolete.py @@ -229,19 +229,20 @@ def reposetup(ui, repo): ### pull // push support def pull(self, remote, *args, **kwargs): - obskey = remote.listkeys('obsolete') - obsrels = obskey.get('relations', {}) result = opull(remote, *args, **kwargs) - for sub, objs in obsrels.iteritems(): - for obj in objs: - self.addobsolete(sub, obj) + if 'obsolete' in remote.listkeys('namespaces'): + tmp = StringIO() + tmp.write(remote.listkeys('obsolete')['relations']) + tmp.seek(0) + obsrels = repo._obsdeserialise(tmp) + for sub, objs in obsrels.iteritems(): + for obj in objs: + self.addobsolete(sub, obj) return result def push(self, remote, *args, **opts): - obskey = remote.listkeys('obsolete') - obssupport = 'relations' in obskey result = opush(remote, *args, **opts) - if obssupport: + if 'obsolete' in remote.listkeys('namespaces'): tmp = StringIO() repo._obsserialise(tmp) remote.pushkey('obsolete', 'relations', {}, tmp.getvalue())