##// END OF EJS Templates
Show remote client output with "remote:"
Matt Mackall -
r646:342927da default
parent child Browse files
Show More
@@ -11,7 +11,7 b' from revlog import *'
11 from demandload import *
11 from demandload import *
12 demandload(globals(), "re lock urllib urllib2 transaction time socket")
12 demandload(globals(), "re lock urllib urllib2 transaction time socket")
13 demandload(globals(), "tempfile httprangereader bdiff")
13 demandload(globals(), "tempfile httprangereader bdiff")
14 demandload(globals(), "bisect")
14 demandload(globals(), "bisect select")
15
15
16 class filelog(revlog):
16 class filelog(revlog):
17 def __init__(self, opener, path):
17 def __init__(self, opener, path):
@@ -1751,11 +1751,21 b' class sshrepository:'
1751 cmd = "ssh %s 'hg -R %s serve --stdio'"
1751 cmd = "ssh %s 'hg -R %s serve --stdio'"
1752 cmd = cmd % (args, path)
1752 cmd = cmd % (args, path)
1753
1753
1754 self.pipeo, self.pipei = os.popen2(cmd)
1754 self.pipeo, self.pipei, self.pipee = os.popen3(cmd)
1755
1756 def readerr(self):
1757 while 1:
1758 r,w,x = select.select([self.pipee], [], [], 0)
1759 if not r: break
1760 l = self.pipee.readline()
1761 if not l: break
1762 self.ui.status("remote: ", l)
1755
1763
1756 def __del__(self):
1764 def __del__(self):
1765 self.readerr()
1757 self.pipeo.close()
1766 self.pipeo.close()
1758 self.pipei.close()
1767 self.pipei.close()
1768 self.pipee.close()
1759
1769
1760 def dev(self):
1770 def dev(self):
1761 return -1
1771 return -1
@@ -1772,7 +1782,12 b' class sshrepository:'
1772
1782
1773 def call(self, cmd, **args):
1783 def call(self, cmd, **args):
1774 r = self.do_cmd(cmd, **args)
1784 r = self.do_cmd(cmd, **args)
1775 l = int(r.readline())
1785 l = r.readline()
1786 self.readerr()
1787 try:
1788 l = int(l)
1789 except:
1790 raise RepoError("unexpected response '%s'" % l)
1776 return r.read(l)
1791 return r.read(l)
1777
1792
1778 def lock(self):
1793 def lock(self):
@@ -1787,8 +1802,7 b' class sshrepository:'
1787 try:
1802 try:
1788 return map(bin, d[:-1].split(" "))
1803 return map(bin, d[:-1].split(" "))
1789 except:
1804 except:
1790 self.ui.warn("unexpected response:\n" + d[:400] + "\n...\n")
1805 raise RepoError("unexpected response '%s'" % (d[:400] + "..."))
1791 raise
1792
1806
1793 def branches(self, nodes):
1807 def branches(self, nodes):
1794 n = " ".join(map(hex, nodes))
1808 n = " ".join(map(hex, nodes))
@@ -1797,8 +1811,7 b' class sshrepository:'
1797 br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ]
1811 br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ]
1798 return br
1812 return br
1799 except:
1813 except:
1800 self.ui.warn("unexpected response:\n" + d[:400] + "\n...\n")
1814 raise RepoError("unexpected response '%s'" % (d[:400] + "..."))
1801 raise
1802
1815
1803 def between(self, pairs):
1816 def between(self, pairs):
1804 n = "\n".join(["-".join(map(hex, p)) for p in pairs])
1817 n = "\n".join(["-".join(map(hex, p)) for p in pairs])
@@ -1807,8 +1820,7 b' class sshrepository:'
1807 p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ]
1820 p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ]
1808 return p
1821 return p
1809 except:
1822 except:
1810 self.ui.warn("unexpected response:\n" + d[:400] + "\n...\n")
1823 raise RepoError("unexpected response '%s'" % (d[:400] + "..."))
1811 raise
1812
1824
1813 def changegroup(self, nodes):
1825 def changegroup(self, nodes):
1814 n = " ".join(map(hex, nodes))
1826 n = " ".join(map(hex, nodes))
@@ -1824,11 +1836,13 b' class sshrepository:'
1824 d = cg.read(4096)
1836 d = cg.read(4096)
1825 if not d: break
1837 if not d: break
1826 self.pipeo.write(d)
1838 self.pipeo.write(d)
1839 self.readerr()
1827
1840
1828 self.pipeo.flush()
1841 self.pipeo.flush()
1829
1842
1843 self.readerr()
1830 l = int(self.pipei.readline())
1844 l = int(self.pipei.readline())
1831 return self.pipei.read(l)
1845 return self.pipei.read(l) != ""
1832
1846
1833 def repository(ui, path=None, create=0):
1847 def repository(ui, path=None, create=0):
1834 if path:
1848 if path:
General Comments 0
You need to be logged in to leave comments. Login now