changeset 8442:3acc6279b364

merge with crew-stable
author Martin Geisler <mg@lazybytes.net>
date Sat, 16 May 2009 11:16:23 +0200
parents ca7fa5e5b682 (current diff) c5b3d3e30de7 (diff)
children 53ff4a5af284
files mercurial/changelog.py
diffstat 3 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/changelog.py	Sat May 16 08:46:42 2009 +0200
+++ b/mercurial/changelog.py	Sat May 16 11:16:23 2009 +0200
@@ -201,6 +201,11 @@
     def add(self, manifest, files, desc, transaction, p1, p2,
                   user, date=None, extra={}):
         user = user.strip()
+        # An empty username or a username with a "\n" will make the
+        # revision text contain two "\n\n" sequences -> corrupt
+        # repository since read cannot unpack the revision.
+        if not user:
+            raise error.RevlogError(_("empty username"))
         if "\n" in user:
             raise error.RevlogError(_("username %s contains a newline")
                                     % repr(user))
--- a/tests/test-committer	Sat May 16 08:46:42 2009 +0200
+++ b/tests/test-committer	Sat May 16 11:16:23 2009 +0200
@@ -29,3 +29,8 @@
 hg commit -d '1000000 0' -m commit-1
 rm .hg/hgrc
 hg commit -d '1000000 0' -m commit-1 2>&1 | sed -e "s/'[^']*'/user@host/"
+
+echo space > asdf
+hg commit -d '1000000 0' -u ' ' -m commit-1
+
+true
--- a/tests/test-committer.out	Sat May 16 08:46:42 2009 +0200
+++ b/tests/test-committer.out	Sat May 16 11:16:23 2009 +0200
@@ -24,3 +24,6 @@
 
 abort: Please specify a username.
 No username found, using user@host instead
+transaction abort!
+rollback completed
+abort: empty username!