changeset 1985:c577689006fa

Adapted behaviour of ui.username() to documentation and mention it explicitly: Searched in this order: $HGUSER, [ui] section of hgrcs, $EMAIL and stop searching if one of these is set. Abort if found username is an empty string to force specifying the commit user elsewhere, e.g. with line option or repo hgrc. If not found, use $LOGNAME or $USERNAME +"@full.hostname".
author Thomas Arendsen Hein <thomas@intevation.de>
date Tue, 21 Mar 2006 15:33:29 +0100
parents df7436f439a0
children 719cf07b076d 04c17fc39c84
files doc/hgrc.5.txt mercurial/ui.py
diffstat 2 files changed, 23 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/doc/hgrc.5.txt	Tue Mar 21 12:54:32 2006 +0100
+++ b/doc/hgrc.5.txt	Tue Mar 21 15:33:29 2006 +0100
@@ -257,7 +257,9 @@
   username;;
     The committer of a changeset created when running "commit".
     Typically a person's name and email address, e.g. "Fred Widget
-    <fred@example.com>".  Default is $EMAIL or username@hostname.
+    <fred@example.com>".  Default is $EMAIL or username@hostname, unless
+    username is set to an empty string, which enforces specifying the
+    username manually.
   verbose;;
     Increase the amount of output printed.  True or False.  Default is False.
 
--- a/mercurial/ui.py	Tue Mar 21 12:54:32 2006 +0100
+++ b/mercurial/ui.py	Tue Mar 21 15:33:29 2006 +0100
@@ -141,12 +141,26 @@
         return ret
 
     def username(self):
-        return (os.environ.get("HGUSER") or
-                self.config("ui", "username") or
-                os.environ.get("EMAIL") or
-                (os.environ.get("LOGNAME",
-                                os.environ.get("USERNAME", "unknown"))
-                 + '@' + socket.getfqdn()))
+        """Return default username to be used in commits.
+
+        Searched in this order: $HGUSER, [ui] section of hgrcs, $EMAIL
+        and stop searching if one of these is set.
+        Abort if found username is an empty string to force specifying
+        the commit user elsewhere, e.g. with line option or repo hgrc.
+        If not found, use $LOGNAME 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:
+            user = os.environ.get("LOGNAME") or os.environ.get("USERNAME")
+            if user:
+                user = "%s@%s" % (user, socket.getfqdn())
+        if not user:
+            raise util.Abort(_("Please specify a username."))
+        return user
 
     def shortuser(self, user):
         """Return a short representation of a user name or email address."""