From 539de0386876ed470f2ae6be90a98421493b3c90 Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Thu, 9 May 2013 00:45:27 +0200 Subject: Stop unintended re-encoding of author names from UTF-8 to ASCII MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To see the bug in action, use an author map with umlauts, e.g. nickname = Hällo Wörld from UTF-8 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. --- src/repository.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ¬eText, 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"); -- cgit v1.2.1