comparison mercurial/sshrepo.py @ 5183:664a1c312972

fix-up references to repo.RepoError
author Matt Mackall <mpm@selenic.com>
date Wed, 15 Aug 2007 16:10:24 -0500
parents 6b4127c7d52a
children 86e95b93559a
comparison
equal deleted inserted replaced
5182:012dbf88b9b2 5183:664a1c312972
6 # of the GNU General Public License, incorporated herein by reference. 6 # of the GNU General Public License, incorporated herein by reference.
7 7
8 from node import * 8 from node import *
9 from remoterepo import * 9 from remoterepo import *
10 from i18n import _ 10 from i18n import _
11 import hg, os, re, stat, util 11 import repo, os, re, stat, util
12 12
13 class sshrepository(remoterepository): 13 class sshrepository(remoterepository):
14 def __init__(self, ui, path, create=0): 14 def __init__(self, ui, path, create=0):
15 self._url = path 15 self._url = path
16 self.ui = ui 16 self.ui = ui
17 17
18 m = re.match(r'^ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?$', path) 18 m = re.match(r'^ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?$', path)
19 if not m: 19 if not m:
20 self.raise_(hg.RepoError(_("couldn't parse location %s") % path)) 20 self.raise_(repo.RepoError(_("couldn't parse location %s") % path))
21 21
22 self.user = m.group(2) 22 self.user = m.group(2)
23 self.host = m.group(3) 23 self.host = m.group(3)
24 self.port = m.group(5) 24 self.port = m.group(5)
25 self.path = m.group(7) or "." 25 self.path = m.group(7) or "."
35 cmd = cmd % (sshcmd, args, remotecmd, self.path) 35 cmd = cmd % (sshcmd, args, remotecmd, self.path)
36 36
37 ui.note('running %s\n' % cmd) 37 ui.note('running %s\n' % cmd)
38 res = os.system(cmd) 38 res = os.system(cmd)
39 if res != 0: 39 if res != 0:
40 self.raise_(hg.RepoError(_("could not create remote repo"))) 40 self.raise_(repo.RepoError(_("could not create remote repo")))
41 41
42 self.validate_repo(ui, sshcmd, args, remotecmd) 42 self.validate_repo(ui, sshcmd, args, remotecmd)
43 43
44 def url(self): 44 def url(self):
45 return self._url 45 return self._url
67 if l: 67 if l:
68 ui.debug(_("remote: "), l) 68 ui.debug(_("remote: "), l)
69 lines.append(l) 69 lines.append(l)
70 max_noise -= 1 70 max_noise -= 1
71 else: 71 else:
72 self.raise_(hg.RepoError(_("no suitable response from remote hg"))) 72 self.raise_(repo.RepoError(_("no suitable response from remote hg")))
73 73
74 self.capabilities = () 74 self.capabilities = ()
75 lines.reverse() 75 lines.reverse()
76 for l in lines: 76 for l in lines:
77 if l.startswith("capabilities:"): 77 if l.startswith("capabilities:"):
134 d = self.call("lookup", key=key) 134 d = self.call("lookup", key=key)
135 success, data = d[:-1].split(" ", 1) 135 success, data = d[:-1].split(" ", 1)
136 if int(success): 136 if int(success):
137 return bin(data) 137 return bin(data)
138 else: 138 else:
139 self.raise_(hg.RepoError(data)) 139 self.raise_(repo.RepoError(data))
140 140
141 def heads(self): 141 def heads(self):
142 d = self.call("heads") 142 d = self.call("heads")
143 try: 143 try:
144 return map(bin, d[:-1].split(" ")) 144 return map(bin, d[:-1].split(" "))
173 return self.do_cmd("changegroupsubset", bases=bases, heads=heads) 173 return self.do_cmd("changegroupsubset", bases=bases, heads=heads)
174 174
175 def unbundle(self, cg, heads, source): 175 def unbundle(self, cg, heads, source):
176 d = self.call("unbundle", heads=' '.join(map(hex, heads))) 176 d = self.call("unbundle", heads=' '.join(map(hex, heads)))
177 if d: 177 if d:
178 self.raise_(hg.RepoError(_("push refused: %s") % d)) 178 self.raise_(repo.RepoError(_("push refused: %s") % d))
179 179
180 while 1: 180 while 1:
181 d = cg.read(4096) 181 d = cg.read(4096)
182 if not d: break 182 if not d: break
183 self.pipeo.write(str(len(d)) + '\n') 183 self.pipeo.write(str(len(d)) + '\n')
199 return int(r) 199 return int(r)
200 200
201 def addchangegroup(self, cg, source, url): 201 def addchangegroup(self, cg, source, url):
202 d = self.call("addchangegroup") 202 d = self.call("addchangegroup")
203 if d: 203 if d:
204 self.raise_(hg.RepoError(_("push refused: %s") % d)) 204 self.raise_(repo.RepoError(_("push refused: %s") % d))
205 while 1: 205 while 1:
206 d = cg.read(4096) 206 d = cg.read(4096)
207 if not d: break 207 if not d: break
208 self.pipeo.write(d) 208 self.pipeo.write(d)
209 self.readerr() 209 self.readerr()