ui: add an option to prompt for the username when it isn't provided
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Wed, 06 Aug 2008 15:10:05 +0200
changeset 6862 7192876ac329
parent 6861 0b6f2fa5e03f
child 6863 d78d0f9783b8
ui: add an option to prompt for the username when it isn't provided When ui.askusername is set and not username are specified on the command line, in hgrc or in the variables $HGUSER or $EMAIL, then hg will prompt for the username. Feature requested, and documentation provided by Mark Edgington.
doc/hgrc.5.txt
mercurial/ui.py
--- a/doc/hgrc.5.txt	Sat Aug 02 23:45:10 2008 +0200
+++ b/doc/hgrc.5.txt	Wed Aug 06 15:10:05 2008 +0200
@@ -547,6 +547,12 @@
     (hashes for the repository base and for tip) in archives created by
     the hg archive command or downloaded via hgweb.
     Default is true.
+  askusername;;
+    Whether to prompt for a username when committing. If True, and
+    neither $HGUSER nor $EMAIL has been specified, then the user will
+    be prompted to enter a username.  If no username is entered, the
+    default USER@HOST is used instead.
+    Default is False.
   debug;;
     Print debugging information. True or False. Default is False.
   editor;;
--- a/mercurial/ui.py	Sat Aug 02 23:45:10 2008 +0200
+++ b/mercurial/ui.py	Wed Aug 06 15:10:05 2008 +0200
@@ -331,14 +331,16 @@
 
         Searched in this order: $HGUSER, [ui] section of hgrcs, $EMAIL
         and stop searching if one of these is set.
-        If not found, use ($LOGNAME or $USER or $LNAME or
-        $USERNAME) +"@full.hostname".
+        If not found and ui.askusername is True, ask the user, else use
+        ($LOGNAME or $USER or $LNAME or $USERNAME) + "@full.hostname".
         """
         user = os.environ.get("HGUSER")
         if user is None:
             user = self.config("ui", "username")
         if user is None:
             user = os.environ.get("EMAIL")
+        if user is None and self.configbool("ui", "askusername"):
+            user = self.prompt(_("Enter a commit username:"), default=None)
         if user is None:
             try:
                 user = '%s@%s' % (util.getuser(), socket.getfqdn())