# HG changeset patch # User Kevin Bullock # Date 2012-10-17 21:32:43 # Node ID 19388ba75a06d71c9fe7bf3d53dff74420d721a7 # Parent be1467342038466343a5cd60ae357576c4373c13 bookmarks: disallow bookmarks named 'tip', '.', or 'null' This makes bookmarks reject the same reserved names as tags and branches. diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py --- a/mercurial/bookmarks.py +++ b/mercurial/bookmarks.py @@ -15,6 +15,8 @@ def checkvalid(mark): if c in mark: raise util.Abort(_("bookmark '%s' contains illegal " "character" % mark)) + if mark in ['tip', '.', 'null']: + raise util.Abort(_('the name \'%s\' is reserved') % mark) def read(repo): '''Parse .hg/bookmarks file and return a dictionary diff --git a/tests/test-bookmarks.t b/tests/test-bookmarks.t --- a/tests/test-bookmarks.t +++ b/tests/test-bookmarks.t @@ -222,6 +222,21 @@ reject bookmark name with newline abort: bookmark names cannot consist entirely of whitespace [255] +bookmark with reserved name + + $ hg bookmark tip + abort: the name 'tip' is reserved + [255] + + $ hg bookmark . + abort: the name '.' is reserved + [255] + + $ hg bookmark null + abort: the name 'null' is reserved + [255] + + bookmark with existing name $ hg bookmark Z