aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2013-05-09 00:45:27 +0200
committerTorgny Nyblom <nyblom@kde.org>2013-05-19 08:20:36 +0200
commit539de0386876ed470f2ae6be90a98421493b3c90 (patch)
tree5a94b6ae60d52c5398810059dfd43afcae7c4653
parent4a1e11c6ceb17b764c613778d8ce408f0aa28a48 (diff)
downloadsvn2git-master.tar
svn2git-master.tar.gz
svn2git-master.tar.bz2
svn2git-master.tar.xz
svn2git-master.zip
Stop unintended re-encoding of author names from UTF-8 to ASCIIHEADmaster
To see the bug in action, use an author map with umlauts, e.g. nickname = Hällo Wörld from UTF-8 <mail@example.org> and check "git log" after the conversion. What is happening? QByteArray "author" is first decoded as UTF-8 into a QString. That QString is passed to QByteArray::append(const QString &) which internally encodes the QString to ASCII byte data using QString::toAscii(). "git fast-import" expects UTF-8 input from us, so the original QByteArray with UTF-8 content is just what we need.
-rw-r--r--src/repository.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/repository.cpp b/src/repository.cpp
index 3dd84af..154dc93 100644
--- a/src/repository.cpp
+++ b/src/repository.cpp
@@ -685,7 +685,7 @@ void Repository::Transaction::commitNote(const QByteArray &noteText, bool append
QByteArray s("");
s.append("commit refs/notes/commits\n");
s.append("mark :" + QByteArray::number(maxMark + 1) + "\n");
- s.append("committer " + QString::fromUtf8(author) + " " + QString::number(datetime) + " +0000" + "\n");
+ s.append("committer " + author + " " + QString::number(datetime) + " +0000" + "\n");
s.append("data " + QString::number(message.length()) + "\n");
s.append(message + "\n");
s.append("N inline " + commitRef + "\n");