[PATCH 06 of 10] chgserver: pass hashstate and base server address to chgcmdserver
Jun Wu
quark at fb.com
Wed Mar 2 05:44:08 EST 2016
# HG changeset patch
# User Jun Wu <quark at fb.com>
# Date 1456753614 0
# Mon Feb 29 13:46:54 2016 +0000
# Node ID 9821d8ed7874129231a85e86131d37d02f01f129
# Parent 228cda48daee93dc23dc512b9390c9eadfd93f19
chgserver: pass hashstate and base server address to chgcmdserver
In order to detect hash change from a request handler, it must know the
original hashstate. It also needs the base server address to figure out
redirect addresses.
diff --git a/hgext/chgserver.py b/hgext/chgserver.py
--- a/hgext/chgserver.py
+++ b/hgext/chgserver.py
@@ -332,11 +332,13 @@
]
class chgcmdserver(commandserver.server):
- def __init__(self, ui, repo, fin, fout, sock):
+ def __init__(self, ui, repo, fin, fout, sock, hashstate, baseaddress):
super(chgcmdserver, self).__init__(
_newchgui(ui, channeledsystem(fin, fout, 'S')), repo, fin, fout)
self.clientsock = sock
self._oldios = [] # original (self.ch, ui.fp, fd) before "attachio"
+ self.hashstate = hashstate
+ self.baseaddress = baseaddress
def cleanup(self):
# dispatch._runcatch() does not flush outputs if exception is not
@@ -491,7 +493,8 @@
os.setpgid(0, 0)
ui = self.server.ui
repo = self.server.repo
- sv = chgcmdserver(ui, repo, self.rfile, self.wfile, self.connection)
+ sv = chgcmdserver(ui, repo, self.rfile, self.wfile, self.connection,
+ self.server.hashstate, self.server.baseaddress)
try:
try:
sv.serve()
@@ -586,6 +589,8 @@
SocketServer.UnixStreamServer):
ui = self.ui
repo = self.repo
+ hashstate = self.hashstate
+ baseaddress = self.baseaddress
self.server = cls(self.address, _requesthandler)
self.server.idletimeout = self.ui.configint(
'chgserver', 'idletimeout', self.server.idletimeout)
More information about the Mercurial-devel
mailing list