diff -r ca7fa5e5b682 -r 3acc6279b364 mercurial/changelog.py --- 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))