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.popen |
|
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 = |
|
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 |
|
|
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 |
|
|
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 |
|
|
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