Mercurial > public > mercurial-scm > hg
diff mercurial/discovery.py @ 20184:a14d93b2fb1b
bookmarks: allow push -B to create a new remote head (issue2372)
Push is currently allowed to create a new head if there is a remote
bookmark that will be updated to point to the new head. If the
bookmark is not known remotely then push aborts, even if a -B argument
is about to push the bookmark. This change allows push to continue in
this case. This does not require a wireproto force.
author | Stephen Lee <sphen.lee@gmail.com> |
---|---|
date | Mon, 11 Nov 2013 21:16:54 +1100 |
parents | b988b3b19303 |
children | d2704c48f417 |
line wrap: on
line diff
--- a/mercurial/discovery.py Thu Nov 21 15:46:49 2013 -0500 +++ b/mercurial/discovery.py Mon Nov 11 21:16:54 2013 +1100 @@ -219,7 +219,8 @@ unsynced = inc and set([None]) or set() return {None: (oldheads, newheads, unsynced)} -def checkheads(repo, remote, outgoing, remoteheads, newbranch=False, inc=False): +def checkheads(repo, remote, outgoing, remoteheads, newbranch=False, inc=False, + newbookmarks=[]): """Check that a push won't add any outgoing head raise Abort error and display ui message as needed. @@ -259,6 +260,9 @@ lctx, rctx = repo[bm], repo[rnode] if bookmarks.validdest(repo, rctx, lctx): bookmarkedheads.add(lctx.node()) + else: + if bm in newbookmarks: + bookmarkedheads.add(repo[bm].node()) # 3. Check for new heads. # If there are more heads after the push than before, a suitable