# HG changeset patch # User Thomas Arendsen Hein # Date 2006-03-21 14:33:29 # Node ID c577689006faf0beac7e3ce0f4444903111f68cf # Parent df7436f439a0599354b037fda2542f41df0b3b49 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". diff --git a/doc/hgrc.5.txt b/doc/hgrc.5.txt --- a/doc/hgrc.5.txt +++ b/doc/hgrc.5.txt @@ -257,7 +257,9 @@ ui:: username;; The committer of a changeset created when running "commit". Typically a person's name and email address, e.g. "Fred Widget - ". Default is $EMAIL or username@hostname. + ". 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. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -141,12 +141,26 @@ class ui(object): 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."""