Don't let ui.username override web.contact (
issue900)
4603eef60237 introduced using ui.username before web.contact, but this was
never documented and might cause commit accidents.
- Drop web.author (deprecated since 2005)
- Try ui.username or $EMAIL as a fallback to display something useful.
- Update docs for the fallbacks.
--- a/doc/hgrc.5.txt Tue Jan 01 11:19:15 2008 +0100
+++ b/doc/hgrc.5.txt Tue Jan 01 17:07:15 2008 +0100
@@ -524,7 +524,7 @@
Example: "http://hgserver/repos/"
contact;;
Name or email address of the person in charge of the repository.
- Default is "unknown".
+ Defaults to ui.username or $EMAIL or "unknown" if unset or empty.
deny_push;;
Whether to deny pushing to the repository. If empty or not set,
push is not denied. If the special value "*", all remote users
--- a/mercurial/hgweb/common.py Tue Jan 01 11:19:15 2008 +0100
+++ b/mercurial/hgweb/common.py Tue Jan 01 17:07:15 2008 +0100
@@ -97,3 +97,12 @@
parity = 1 - parity
count = 0
+def get_contact(config):
+ """Return repo contact information or empty string.
+
+ web.contact is the primary source, but if that is not set, try
+ ui.username or $EMAIL as a fallback to display something useful.
+ """
+ return (config("web", "contact") or
+ config("ui", "username") or
+ os.environ.get("EMAIL") or "")
--- a/mercurial/hgweb/hgweb_mod.py Tue Jan 01 11:19:15 2008 +0100
+++ b/mercurial/hgweb/hgweb_mod.py Tue Jan 01 17:07:15 2008 +0100
@@ -10,7 +10,7 @@
from mercurial.node import *
from mercurial import mdiff, ui, hg, util, archival, patch
from mercurial import revlog, templater
-from common import ErrorResponse, get_mtime, style_map, paritygen
+from common import ErrorResponse, get_mtime, style_map, paritygen, get_contact
from request import wsgirequest
import webcommands, protocol
@@ -808,9 +808,7 @@
yield tmpl("summary",
desc=self.config("web", "description", "unknown"),
- owner=(self.config("ui", "username") or # preferred
- self.config("web", "contact") or # deprecated
- self.config("web", "author", "unknown")), # also
+ owner=get_contact(self.config) or "unknown",
lastchange=cl.read(cl.tip())[2],
tags=tagentries,
branches=branches,
--- a/mercurial/hgweb/hgwebdir_mod.py Tue Jan 01 11:19:15 2008 +0100
+++ b/mercurial/hgweb/hgwebdir_mod.py Tue Jan 01 17:07:15 2008 +0100
@@ -9,7 +9,8 @@
import os, mimetools, cStringIO
from mercurial.i18n import gettext as _
from mercurial import ui, hg, util, templater
-from common import ErrorResponse, get_mtime, staticfile, style_map, paritygen
+from common import ErrorResponse, get_mtime, staticfile, style_map, paritygen, \
+ get_contact
from hgweb_mod import hgweb
from request import wsgirequest
@@ -182,9 +183,7 @@
except OSError:
continue
- contact = (get("ui", "username") or # preferred
- get("web", "contact") or # deprecated
- get("web", "author", "")) # also
+ contact = get_contact(get)
description = get("web", "description", "")
name = get("web", "name", name)
row = dict(contact=contact or "unknown",
--- a/tests/run-tests.py Tue Jan 01 11:19:15 2008 +0100
+++ b/tests/run-tests.py Tue Jan 01 17:07:15 2008 +0100
@@ -405,6 +405,7 @@
# the tests produce repeatable output.
os.environ['LANG'] = os.environ['LC_ALL'] = 'C'
os.environ['TZ'] = 'GMT'
+os.environ["EMAIL"] = "Foo Bar <foo.bar@example.com>"
TESTDIR = os.environ["TESTDIR"] = os.getcwd()
HGTMP = os.environ['HGTMP'] = tempfile.mkdtemp('', 'hgtests.', options.tmpdir)
Binary file tests/test-hgweb-commands.out has changed