diff -r a1c4b21fc1b2 -r 8474be4412ca mercurial/wireproto.py --- a/mercurial/wireproto.py Tue Oct 16 17:09:50 2012 -0500 +++ b/mercurial/wireproto.py Mon Oct 15 18:37:34 2012 -0300 @@ -503,6 +503,20 @@ else: new = encoding.tolocal(new) # normal path + if util.safehasattr(proto, 'restore'): + + proto.redirect() + + try: + r = repo.pushkey(encoding.tolocal(namespace), encoding.tolocal(key), + encoding.tolocal(old), new) or False + except util.Abort: + r = False + + output = proto.restore() + + return '%s\n%s' % (int(r), output) + r = repo.pushkey(encoding.tolocal(namespace), encoding.tolocal(key), encoding.tolocal(old), new) return '%s\n' % int(r)