equal
deleted
inserted
replaced
11 from demandload import * |
11 from demandload import * |
12 demandload(globals(), "hg os re stat util") |
12 demandload(globals(), "hg os re stat util") |
13 |
13 |
14 class sshrepository(remoterepository): |
14 class sshrepository(remoterepository): |
15 def __init__(self, ui, path, create=0): |
15 def __init__(self, ui, path, create=0): |
16 self.url = path |
16 self._url = path |
17 self.ui = ui |
17 self.ui = ui |
18 |
18 |
19 m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?', path) |
19 m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?', path) |
20 if not m: |
20 if not m: |
21 raise hg.RepoError(_("couldn't parse location %s") % path) |
21 raise hg.RepoError(_("couldn't parse location %s") % path) |
45 res = os.system(cmd) |
45 res = os.system(cmd) |
46 if res != 0: |
46 if res != 0: |
47 raise hg.RepoError(_("could not create remote repo")) |
47 raise hg.RepoError(_("could not create remote repo")) |
48 |
48 |
49 self.validate_repo(ui, sshcmd, args, remotecmd) |
49 self.validate_repo(ui, sshcmd, args, remotecmd) |
|
50 |
|
51 def url(self): |
|
52 return self._url |
50 |
53 |
51 def validate_repo(self, ui, sshcmd, args, remotecmd): |
54 def validate_repo(self, ui, sshcmd, args, remotecmd): |
52 cmd = '%s %s "%s -R %s serve --stdio"' |
55 cmd = '%s %s "%s -R %s serve --stdio"' |
53 cmd = cmd % (sshcmd, args, remotecmd, self.path) |
56 cmd = cmd % (sshcmd, args, remotecmd, self.path) |
54 |
57 |
178 r = self.pipei.read(l) |
181 r = self.pipei.read(l) |
179 if not r: |
182 if not r: |
180 return 1 |
183 return 1 |
181 return int(r) |
184 return int(r) |
182 |
185 |
183 def addchangegroup(self, cg, source): |
186 def addchangegroup(self, cg, source, url): |
184 d = self.call("addchangegroup") |
187 d = self.call("addchangegroup") |
185 if d: |
188 if d: |
186 raise hg.RepoError(_("push refused: %s") % d) |
189 raise hg.RepoError(_("push refused: %s") % d) |
187 while 1: |
190 while 1: |
188 d = cg.read(4096) |
191 d = cg.read(4096) |