changeset 17817:b17be267b59c

scmutil: add function to validate new branch, tag, and bookmark names For now the new function only checks to make sure the new label name isn't a reserved name ('tip', '.', or 'null'). Eventually more of the checks will be unified between the different types of labels. The `tag` command is trivially updated to use it. Updating branches and bookmarks to use it is slightly more invasive and thus reserved for later patches.
author Kevin Bullock <kbullock@ringworld.org>
date Wed, 17 Oct 2012 16:34:46 -0500
parents 19388ba75a06
children 5023027240a1
files mercurial/commands.py mercurial/scmutil.py
diffstat 2 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Wed Oct 17 16:32:43 2012 -0500
+++ b/mercurial/commands.py	Wed Oct 17 16:34:46 2012 -0500
@@ -5640,8 +5640,7 @@
         if len(names) != len(set(names)):
             raise util.Abort(_('tag names must be unique'))
         for n in names:
-            if n in ['tip', '.', 'null']:
-                raise util.Abort(_("the name '%s' is reserved") % n)
+            scmutil.checknewlabel(repo, n)
             if not n:
                 raise util.Abort(_('tag names cannot consist entirely of '
                                    'whitespace'))
--- a/mercurial/scmutil.py	Wed Oct 17 16:32:43 2012 -0500
+++ b/mercurial/scmutil.py	Wed Oct 17 16:34:46 2012 -0500
@@ -27,6 +27,10 @@
     else:
         ui.status(_("no changes found\n"))
 
+def checknewlabel(repo, lbl):
+    if lbl in ['tip', '.', 'null']:
+        raise util.Abort(_("the name '%s' is reserved") % lbl)
+
 def checkfilename(f):
     '''Check that the filename f is an acceptable filename for a tracked file'''
     if '\r' in f or '\n' in f: