diff --git a/eden/scm/edenscm/mercurial/configitems.py b/eden/scm/edenscm/mercurial/configitems.py index 85cadaa030..df1e27041c 100644 --- a/eden/scm/edenscm/mercurial/configitems.py +++ b/eden/scm/edenscm/mercurial/configitems.py @@ -503,6 +503,7 @@ coreconfigitem("ui", "quietbookmarkmove", default=False) coreconfigitem("ui", "remotecmd", default="hg") coreconfigitem("ui", "report_untrusted", default=True) coreconfigitem("ui", "rollback", default=True) +coreconfigitem("ui", "skip-local-bookmarks-on-pull", default=False) coreconfigitem("ui", "slash", default=False) coreconfigitem("ui", "ssh", default="ssh") coreconfigitem("ui", "ssherrorhint", default=None) diff --git a/eden/scm/edenscm/mercurial/exchange.py b/eden/scm/edenscm/mercurial/exchange.py index 5c75322301..17f0bcbfe6 100644 --- a/eden/scm/edenscm/mercurial/exchange.py +++ b/eden/scm/edenscm/mercurial/exchange.py @@ -1704,6 +1704,11 @@ def _pullbookmarks(pullop): return pullop.stepsdone.add("bookmarks") repo = pullop.repo + ui = repo.ui + # XXX: Ideally we update remotenames right here to avoid race + # conditions. See racy-pull-on-push in remotenames.py. + if ui.configbool("ui", "skip-local-bookmarks-on-pull"): + return remotebookmarks = pullop.remotebookmarks bookmod.updatefromremote( repo.ui, diff --git a/eden/scm/edenscm/mercurial/helptext.py b/eden/scm/edenscm/mercurial/helptext.py index a393a2f194..162890566c 100644 --- a/eden/scm/edenscm/mercurial/helptext.py +++ b/eden/scm/edenscm/mercurial/helptext.py @@ -2519,6 +2519,10 @@ User interface controls. Remote command to use for clone/push/pull operations. (default: ``hg``) +``skip-local-bookmarks-on-pull`` + Do not write local bookmarks on pull or clone. + Turn on the ``remotenames`` extension to get remote bookmarks. + ``slash`` (Deprecated. Use ``slashpath`` template filter instead.)