Mercurial > hg
changeset 14981:192e02680d09 stable
setdiscovery: return anyincoming=False when remote's only head is nullid
This fixes (issue2907) a crash when using 'hg incoming --bundle' with an empty
remote repo and a non-empty local repo.
This also fixes an unreported bug that 'hg summary --remote' erroneously
reports incoming changes when the remote repo is empty and the local is not.
Also, add a test to make sure issue2907 stays fixed
author | Andrew Pritchard <andrewp@fogcreek.com> |
---|---|
date | Wed, 27 Jul 2011 18:32:54 -0400 |
parents | 28e98a8b173d |
children | cc2c22511707 e6730f9e13bc 4fdab926e111 |
files | mercurial/setdiscovery.py tests/test-incoming-outgoing.t |
diffstat | 2 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/setdiscovery.py Thu Jul 28 14:36:07 2011 +0900 +++ b/mercurial/setdiscovery.py Wed Jul 27 18:32:54 2011 -0400 @@ -190,4 +190,5 @@ ui.warn(_("warning: repository is unrelated\n")) return (set([nullid]), True, srvheadhashes,) - return (dag.externalizeall(result), True, srvheadhashes,) + anyincoming = (srvheadhashes != [nullid]) + return dag.externalizeall(result), anyincoming, srvheadhashes
--- a/tests/test-incoming-outgoing.t Thu Jul 28 14:36:07 2011 +0900 +++ b/tests/test-incoming-outgoing.t Wed Jul 27 18:32:54 2011 -0400 @@ -465,3 +465,16 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: 11 + +incoming from empty remote repository + + $ hg init r1 + $ hg init r2 + $ echo a > r1/foo + $ hg -R r1 ci -Ama + adding foo + $ hg -R r1 incoming r2 --bundle x.hg + comparing with r2 + searching for changes + no changes found + [1]