mercurial/commandserver.py
branchstable
changeset 21195 9336bc7dca8e
parent 20650 e811b93f2cb1
child 22561 1120b1e2f975
equal deleted inserted replaced
21194:476069509e72 21195:9336bc7dca8e
   185             args = self._read(length).split('\0')
   185             args = self._read(length).split('\0')
   186 
   186 
   187         # copy the uis so changes (e.g. --config or --verbose) don't
   187         # copy the uis so changes (e.g. --config or --verbose) don't
   188         # persist between requests
   188         # persist between requests
   189         copiedui = self.ui.copy()
   189         copiedui = self.ui.copy()
       
   190         uis = [copiedui]
   190         if self.repo:
   191         if self.repo:
   191             self.repo.baseui = copiedui
   192             self.repo.baseui = copiedui
   192             # clone ui without using ui.copy because this is protected
   193             # clone ui without using ui.copy because this is protected
   193             repoui = self.repoui.__class__(self.repoui)
   194             repoui = self.repoui.__class__(self.repoui)
   194             repoui.copy = copiedui.copy # redo copy protection
   195             repoui.copy = copiedui.copy # redo copy protection
       
   196             uis.append(repoui)
   195             self.repo.ui = self.repo.dirstate._ui = repoui
   197             self.repo.ui = self.repo.dirstate._ui = repoui
   196             self.repo.invalidateall()
   198             self.repo.invalidateall()
       
   199 
       
   200         for ui in uis:
       
   201             # any kind of interaction must use server channels
       
   202             ui.setconfig('ui', 'nontty', 'true', 'commandserver')
   197 
   203 
   198         req = dispatch.request(args[:], copiedui, self.repo, self.cin,
   204         req = dispatch.request(args[:], copiedui, self.repo, self.cin,
   199                                self.cout, self.cerr)
   205                                self.cout, self.cerr)
   200 
   206 
   201         ret = (dispatch.dispatch(req) or 0) & 255 # might return None
   207         ret = (dispatch.dispatch(req) or 0) & 255 # might return None