Show More
@@ -527,6 +527,37 b' def patchbomb(ui, repo, *revs, **opts):' | |||
|
527 | 527 | if bundle: |
|
528 | 528 | opts['revs'] = [str(r) for r in revs] |
|
529 | 529 | |
|
530 | # check if revision exist on the public destination | |
|
531 | publicurl = repo.ui.config('patchbomb', 'publicurl') | |
|
532 | if publicurl is not None: | |
|
533 | repo.ui.debug('checking that revision exist in the public repo') | |
|
534 | try: | |
|
535 | publicpeer = hg.peer(repo, {}, publicurl) | |
|
536 | except error.RepoError: | |
|
537 | repo.ui.write_err(_('unable to access public repo: %s\n') | |
|
538 | % publicurl) | |
|
539 | raise | |
|
540 | if not publicpeer.capable('known'): | |
|
541 | repo.ui.debug('skipping existence checks: public repo too old') | |
|
542 | else: | |
|
543 | out = [repo[r] for r in revs] | |
|
544 | known = publicpeer.known(h.node() for h in out) | |
|
545 | missing = [] | |
|
546 | for idx, h in enumerate(out): | |
|
547 | if not known[idx]: | |
|
548 | missing.append(h) | |
|
549 | if missing: | |
|
550 | if 1 < len(missing): | |
|
551 | msg = _('public "%s" is missing %s and %i others') | |
|
552 | msg %= (publicurl, missing[0], len(missing) - 1) | |
|
553 | else: | |
|
554 | msg = _('public url %s is missing %s') | |
|
555 | msg %= (publicurl, missing[0]) | |
|
556 | revhint = ''.join('-r %s' % h | |
|
557 | for h in repo.set('heads(%ld)', missing)) | |
|
558 | hint = _('use "hg push %s %s"') % (publicurl, revhint) | |
|
559 | raise error.Abort(msg, hint=hint) | |
|
560 | ||
|
530 | 561 | # start |
|
531 | 562 | if date: |
|
532 | 563 | start_time = util.parsedate(date) |
@@ -2845,15 +2845,34 b' single rev' | |||
|
2845 | 2845 | Test pull url header |
|
2846 | 2846 | ================================= |
|
2847 | 2847 | |
|
2848 | basic version | |
|
2849 | ||
|
2848 | 2850 | $ echo 'intro=auto' >> $HGRCPATH |
|
2849 |
$ echo |
|
|
2851 | $ echo "publicurl=$TESTTMP/t2" >> $HGRCPATH | |
|
2850 | 2852 |
$ |
|
2851 | # HG changeset patch | |
|
2852 | # User test | |
|
2853 | # Date 5 0 | |
|
2854 | # Thu Jan 01 00:00:05 1970 +0000 | |
|
2855 | # Branch test | |
|
2856 | # Node ID 3b6f1ec9dde933a40a115a7990f8b320477231af | |
|
2857 | # Parent 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268 | |
|
2858 | # Available At http://example.com/myrepo/ | |
|
2859 | # hg pull http://example.com/myrepo/ -r 3b6f1ec9dde9 | |
|
2853 | abort: public url $TESTTMP/t2 is missing 3b6f1ec9dde9 | |
|
2854 | (use "hg push $TESTTMP/t2 -r 3b6f1ec9dde9") | |
|
2855 | [1] | |
|
2856 | ||
|
2857 | remote missing | |
|
2858 | ||
|
2859 | $ echo 'publicurl=$TESTTMP/missing' >> $HGRCPATH | |
|
2860 | $ hg email --date '1980-1-1 0:1' -n -t foo -s test -r '10' | |
|
2861 | unable to access public repo: $TESTTMP/missing | |
|
2862 | abort: repository $TESTTMP/missing not found! | |
|
2863 | [255] | |
|
2864 | ||
|
2865 | node missing at remote | |
|
2866 | ||
|
2867 | $ hg clone -r '9' . ../t3 | |
|
2868 | adding changesets | |
|
2869 | adding manifests | |
|
2870 | adding file changes | |
|
2871 | added 3 changesets with 3 changes to 3 files | |
|
2872 | updating to branch test | |
|
2873 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
2874 | $ echo 'publicurl=$TESTTMP/t3' >> $HGRCPATH | |
|
2875 | $ hg email --date '1980-1-1 0:1' -n -t foo -s test -r '10' | |
|
2876 | abort: public url $TESTTMP/t3 is missing 3b6f1ec9dde9 | |
|
2877 | (use "hg push $TESTTMP/t3 -r 3b6f1ec9dde9") | |
|
2878 | [255] |
General Comments 0
You need to be logged in to leave comments.
Login now