ui: only use "user@host" as username in noninteractive mode
authorMartin Geisler <mg@lazybytes.net>
Tue, 20 Oct 2009 00:17:36 +0200
changeset 9613 c63c336ee2f7
parent 9612 d051db8e9e44
child 9616 0fedf8233b21
ui: only use "user@host" as username in noninteractive mode We regularly see people on IRC ask how they can correct commits they accidentally made without having configured a username. This change will make Mercurial abort when a commit is made without a username. If Mercurial is run without a TTY (from a cronjob or similar), a username is constructed as usual. Schematically the changes are as follows: With ui.askusername=False: old new interactive user@host abort noninteractive user@host user@host With ui.askusername=True: old new interactive prompt prompt noninteractive user@host user@host
mercurial/ui.py
--- a/mercurial/ui.py	Mon Oct 19 23:27:20 2009 +0300
+++ b/mercurial/ui.py	Tue Oct 20 00:17:36 2009 +0200
@@ -179,7 +179,7 @@
             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:
+        if user is None and not self.interactive():
             try:
                 user = '%s@%s' % (util.getuser(), socket.getfqdn())
                 self.warn(_("No username found, using '%s' instead\n") % user)