Show More
@@ -758,35 +758,11 b' def pull(ui, repo, source="default", **o' | |||||
758 | def push(ui, repo, dest="default-push"): |
|
758 | def push(ui, repo, dest="default-push"): | |
759 | """push changes to the specified destination""" |
|
759 | """push changes to the specified destination""" | |
760 | dest = ui.expandpath(dest) |
|
760 | dest = ui.expandpath(dest) | |
761 |
|
761 | ui.status('pushing to %s\n' % (dest)) | ||
762 | if not dest.startswith("ssh://"): |
|
|||
763 | ui.warn("abort: can only push to ssh:// destinations currently\n") |
|
|||
764 | return 1 |
|
|||
765 |
|
||||
766 | m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?', dest) |
|
|||
767 | if not m: |
|
|||
768 | ui.warn("abort: couldn't parse destination %s\n" % dest) |
|
|||
769 | return 1 |
|
|||
770 |
|
||||
771 | user, host, port, path = map(m.group, (2, 3, 5, 7)) |
|
|||
772 | uhost = user and ("%s@%s" % (user, host)) or host |
|
|||
773 | port = port and (" -p %s") % port or "" |
|
|||
774 | path = path or "" |
|
|||
775 |
|
762 | |||
776 | sport = random.randrange(30000, 60000) |
|
763 | other = hg.repository(ui, dest) | |
777 | cmd = "ssh %s%s -R %d:localhost:%d 'cd %s; hg pull http://localhost:%d/'" |
|
764 | r = repo.push(other) | |
778 | cmd = cmd % (uhost, port, sport+1, sport, path, sport+1) |
|
765 | return r | |
779 |
|
||||
780 | child = os.fork() |
|
|||
781 | if not child: |
|
|||
782 | sys.stdout = file("/dev/null", "w") |
|
|||
783 | sys.stderr = sys.stdout |
|
|||
784 | hgweb.server(repo.root, "pull", "", "localhost", sport) |
|
|||
785 | else: |
|
|||
786 | ui.status("connecting to %s\n" % host) |
|
|||
787 | r = os.system(cmd) |
|
|||
788 | os.kill(child, signal.SIGTERM) |
|
|||
789 | return r |
|
|||
790 |
|
766 | |||
791 | def rawcommit(ui, repo, *flist, **rc): |
|
767 | def rawcommit(ui, repo, *flist, **rc): | |
792 | "raw commit interface" |
|
768 | "raw commit interface" |
General Comments 0
You need to be logged in to leave comments.
Login now