Show More
@@ -343,8 +343,12 b' class wirepeer(peer.peerrepository):' | |||||
343 | def unbundle(self, cg, heads, source): |
|
343 | def unbundle(self, cg, heads, source): | |
344 | '''Send cg (a readable file-like object representing the |
|
344 | '''Send cg (a readable file-like object representing the | |
345 | changegroup to push, typically a chunkbuffer object) to the |
|
345 | changegroup to push, typically a chunkbuffer object) to the | |
346 |
remote server as a bundle. |
|
346 | remote server as a bundle. | |
347 | result of the push (see localrepository.addchangegroup()).''' |
|
347 | ||
|
348 | When pushing a bundle10 stream, return an integer indicating the | |||
|
349 | result of the push (see localrepository.addchangegroup()). | |||
|
350 | ||||
|
351 | When pushing a bundle20 stream, return a bundle20 stream.''' | |||
348 |
|
352 | |||
349 | if heads != ['force'] and self.capable('unbundlehash'): |
|
353 | if heads != ['force'] and self.capable('unbundlehash'): | |
350 | heads = encodelist(['hashed', |
|
354 | heads = encodelist(['hashed', | |
@@ -352,18 +356,24 b' class wirepeer(peer.peerrepository):' | |||||
352 | else: |
|
356 | else: | |
353 | heads = encodelist(heads) |
|
357 | heads = encodelist(heads) | |
354 |
|
358 | |||
355 | ret, output = self._callpush("unbundle", cg, heads=heads) |
|
359 | if util.safehasattr(cg, 'deltaheader'): | |
356 | if ret == "": |
|
360 | # this a bundle10, do the old style call sequence | |
357 | raise error.ResponseError( |
|
361 | ret, output = self._callpush("unbundle", cg, heads=heads) | |
358 | _('push failed:'), output) |
|
362 | if ret == "": | |
359 | try: |
|
363 | raise error.ResponseError( | |
360 | ret = int(ret) |
|
364 | _('push failed:'), output) | |
361 | except ValueError: |
|
365 | try: | |
362 | raise error.ResponseError( |
|
366 | ret = int(ret) | |
363 | _('push failed (unexpected response):'), ret) |
|
367 | except ValueError: | |
|
368 | raise error.ResponseError( | |||
|
369 | _('push failed (unexpected response):'), ret) | |||
364 |
|
370 | |||
365 | for l in output.splitlines(True): |
|
371 | for l in output.splitlines(True): | |
366 | self.ui.status(_('remote: '), l) |
|
372 | self.ui.status(_('remote: '), l) | |
|
373 | else: | |||
|
374 | # bundle2 push. Send a stream, fetch a stream. | |||
|
375 | stream = self._calltwowaystream('unbundle', cg, heads=heads) | |||
|
376 | ret = bundle2.unbundle20(self.ui, stream) | |||
367 | return ret |
|
377 | return ret | |
368 |
|
378 | |||
369 | def debugwireargs(self, one, two, three=None, four=None, five=None): |
|
379 | def debugwireargs(self, one, two, three=None, four=None, five=None): | |
@@ -781,6 +791,10 b' def unbundle(repo, proto, heads):' | |||||
781 | gen = exchange.readbundle(repo.ui, fp, None) |
|
791 | gen = exchange.readbundle(repo.ui, fp, None) | |
782 | r = exchange.unbundle(repo, gen, their_heads, 'serve', |
|
792 | r = exchange.unbundle(repo, gen, their_heads, 'serve', | |
783 | proto._client()) |
|
793 | proto._client()) | |
|
794 | if util.safehasattr(r, 'addpart'): | |||
|
795 | # The return looks streameable, we are in the bundle2 case and | |||
|
796 | # should return a stream. | |||
|
797 | return streamres(r.getchunks()) | |||
784 | return pushres(r) |
|
798 | return pushres(r) | |
785 |
|
799 | |||
786 | finally: |
|
800 | finally: |
@@ -158,6 +158,9 b' Create an extension to test bundle2 API' | |||||
158 | > bundle2=True |
|
158 | > bundle2=True | |
159 | > [ui] |
|
159 | > [ui] | |
160 | > ssh=python "$TESTDIR/dummyssh" |
|
160 | > ssh=python "$TESTDIR/dummyssh" | |
|
161 | > [web] | |||
|
162 | > push_ssl = false | |||
|
163 | > allow_push = * | |||
161 | > EOF |
|
164 | > EOF | |
162 |
|
165 | |||
163 | The extension requires a repo (currently unused) |
|
166 | The extension requires a repo (currently unused) | |
@@ -711,4 +714,72 b' pull over http' | |||||
711 | (run 'hg heads .' to see heads, 'hg merge' to merge) |
|
714 | (run 'hg heads .' to see heads, 'hg merge' to merge) | |
712 | $ cat main-error.log |
|
715 | $ cat main-error.log | |
713 |
|
716 | |||
|
717 | push over ssh | |||
714 |
|
718 | |||
|
719 | $ hg -R main push ssh://user@dummy/other -r 5fddd98957c8 | |||
|
720 | pushing to ssh://user@dummy/other | |||
|
721 | searching for changes | |||
|
722 | remote: adding changesets | |||
|
723 | remote: adding manifests | |||
|
724 | remote: adding file changes | |||
|
725 | remote: added 1 changesets with 1 changes to 1 files | |||
|
726 | ||||
|
727 | push over http | |||
|
728 | ||||
|
729 | $ hg -R other serve -p $HGPORT2 -d --pid-file=other.pid -E other-error.log | |||
|
730 | $ cat other.pid >> $DAEMON_PIDS | |||
|
731 | ||||
|
732 | $ hg -R main push http://localhost:$HGPORT2/ -r 32af7686d403 | |||
|
733 | pushing to http://localhost:$HGPORT2/ | |||
|
734 | searching for changes | |||
|
735 | $ cat other-error.log | |||
|
736 | ||||
|
737 | Check final content. | |||
|
738 | ||||
|
739 | $ hg -R other log -G | |||
|
740 | o changeset: 7:32af7686d403 | |||
|
741 | | tag: tip | |||
|
742 | | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
743 | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
744 | | summary: D | |||
|
745 | | | |||
|
746 | o changeset: 6:5fddd98957c8 | |||
|
747 | | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
748 | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
749 | | summary: C | |||
|
750 | | | |||
|
751 | o changeset: 5:42ccdea3bb16 | |||
|
752 | | parent: 0:cd010b8cd998 | |||
|
753 | | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
754 | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
755 | | summary: B | |||
|
756 | | | |||
|
757 | | o changeset: 4:02de42196ebe | |||
|
758 | | | parent: 2:24b6387c8c8c | |||
|
759 | | | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
760 | | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
761 | | | summary: H | |||
|
762 | | | | |||
|
763 | | | o changeset: 3:eea13746799a | |||
|
764 | | |/| parent: 2:24b6387c8c8c | |||
|
765 | | | | parent: 1:9520eea781bc | |||
|
766 | | | | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
767 | | | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
768 | | | | summary: G | |||
|
769 | | | | | |||
|
770 | | o | changeset: 2:24b6387c8c8c | |||
|
771 | |/ / parent: 0:cd010b8cd998 | |||
|
772 | | | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
773 | | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
774 | | | summary: F | |||
|
775 | | | | |||
|
776 | | @ changeset: 1:9520eea781bc | |||
|
777 | |/ user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
778 | | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
779 | | summary: E | |||
|
780 | | | |||
|
781 | o changeset: 0:cd010b8cd998 | |||
|
782 | user: Nicolas Dumazet <nicdumz.commits@gmail.com> | |||
|
783 | date: Sat Apr 30 15:24:48 2011 +0200 | |||
|
784 | summary: A | |||
|
785 |
General Comments 0
You need to be logged in to leave comments.
Login now