Mercurial > hg
changeset 26819:ba7eeeac9603 stable
bookmarks: don't allow pushing new head for existing mark with -B (issue4400)
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 21 Oct 2015 16:21:27 -0500 |
parents | c7d30fdb13b2 |
children | 71d5238f92e9 |
files | mercurial/discovery.py tests/test-bookmarks-pushpull.t |
diffstat | 2 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/discovery.py Tue Oct 20 18:46:00 2015 -0400 +++ b/mercurial/discovery.py Wed Oct 21 16:21:27 2015 -0500 @@ -279,7 +279,7 @@ if bookmarks.validdest(repo, rctx, lctx): bookmarkedheads.add(lctx.node()) else: - if bm in newbookmarks: + if bm in newbookmarks and bm not in remotebookmarks: bookmarkedheads.add(repo[bm].node()) # 3. Check for new heads.
--- a/tests/test-bookmarks-pushpull.t Tue Oct 20 18:46:00 2015 -0400 +++ b/tests/test-bookmarks-pushpull.t Wed Oct 21 16:21:27 2015 -0500 @@ -678,6 +678,26 @@ $ hg -R ../b id -r W cc978a373a53 tip W +pushing an existing but divergent bookmark with -B still requires -f + + $ hg clone -q . r + $ hg up -q X + $ echo 1 > f2 + $ hg ci -qAml + + $ cd r + $ hg up -q X + $ echo 2 > f2 + $ hg ci -qAmr + $ hg push -B X + pushing to $TESTTMP/addmarks (glob) + searching for changes + remote has heads on branch 'default' that are not known locally: a2a606d9ff1b + abort: push creates new remote head 54694f811df9 with bookmark 'X'! + (pull and merge or see "hg help push" for details about pushing new heads) + [255] + $ cd .. + Check summary output for incoming/outgoing bookmarks $ hg bookmarks -d X