Comments
Patch
@@ -328,6 +328,17 @@
#endif
+Divergent bookmark cannot be exported
+
+ $ hg book W@default
+ $ hg push -B W@default ../a
+ pushing to ../a
+ searching for changes
+ cannot push divergent bookmark W@default!
+ no changes found
+ [2]
+ $ hg book -d W@default
+
export the active bookmark
$ hg bookmark V
@@ -18,6 +18,7 @@
== Bug Fixes ==
+ * prevent pushes of divergent bookmarks (foo@remote)
== Backwards Compatibility Changes ==
@@ -856,7 +856,11 @@
for b, scid, dcid in addsrc:
if b in explicit:
explicit.remove(b)
- pushop.outbookmarks.append((b, b'', scid))
+ if bookmod.isdivergent(b):
+ pushop.ui.warn(_(b'cannot push divergent bookmark %s!\n') % b)
+ pushop.bkresult = 2
+ else:
+ pushop.outbookmarks.append((b, b'', scid))
# search for overwritten bookmark
for b, scid, dcid in list(advdst) + list(diverge) + list(differ):
if b in explicit:
@@ -2368,6 +2368,11 @@
b'prepushkey', throw=True, **pycompat.strkwargs(hookargs)
)
+ for book, node in changes:
+ if bookmarks.isdivergent(book):
+ msg = _(b'cannot accept divergent bookmark %s!') % book
+ raise error.Abort(msg)
+
bookstore.applychanges(op.repo, op.gettransaction(), changes)
if pushkeycompat:
@@ -483,6 +483,8 @@
def pushbookmark(repo, key, old, new):
+ if isdivergent(key):
+ return False
if bookmarksinstore(repo):
wlock = util.nullcontextmanager()
else: