Re: [PATCH] send-email: ask about and declare 8bit mails

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] send-email: ask about and declare 8bit mails

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:57

Thomas Rast [off-list ref] writes:
git-send-email passes on an 8bit mail as-is even if it does not
declare a content-type.  Because the user can edit email between
format-patch and send-email, such invalid mails are unfortunately not
very hard to come by.

Make git-send-email stop and ask about the encoding to use if it
encounters any such mail.  Also provide a configuration setting to
permanently configure an encoding.

Signed-off-by: Thomas Rast <redacted>
---

This takes care of what I ran into earlier today.  However, there's
another problem: format-patch doesn't even mark the patch 8bit if its
patch contents (not log message) are non-ASCII.  I'm really not sure
what to do there.
A project won't have uniform file encoding anyway, so even if we were to
do something clever about this, it has to be per-patch.  Perhaps

 (0) use the attributes mechanism to allow projects to mark paths with
     encoding.  E.g.

	# everything in UTF-8 unless otherwise specified...
        * encoding=UTF-8
        Documentation/zh_CN/* encoding=big5

 (1) for each patch, find the paths involved, and if their encodings are
     the same, perhaps promote that as the encoding used for the entire
     message;

 (2) otherwise, if there is an 8-bit encoding involved in the paths,
     perhaps mark the entire message as 8-bit (binary???).

I have this suspicion that (2) is very rare (you cannot transmit such a
patch as a plain text message reliably afaict, so it is not done in
practice), and we would probably need to make a separate patchfile for
groups of paths in each encoding and attach them as MIME multiparts (ugh).

Just thinkning aloud, before morning caffeine sinks in, so please take
this with a grain of salt...

Re: [PATCH] send-email: ask about and declare 8bit mails

From: Thomas Rast <hidden>
Date: 2016-06-15 22:48:57

Junio C Hamano wrote:
 (2) otherwise, if there is an 8-bit encoding involved in the paths,
     perhaps mark the entire message as 8-bit (binary???).

I have this suspicion that (2) is very rare (you cannot transmit such a
patch as a plain text message reliably afaict, so it is not done in
practice), and we would probably need to make a separate patchfile for
groups of paths in each encoding and attach them as MIME multiparts (ugh).
So IIUC this would be the main/first obstacle?  Seeing as we seem to
do fine here but you both say 8bit is not reliable.  (According to
Wikipedia[*] all the big names support it though...)

Perhaps Quoted-Printable would work with minimal effort?  We could
leave it to send-email to do all the quoting, mailsplit or am all the
unquoting and we retain (mostly) the readability of the original
patches.

That still doesn't solve the problem that we might send (invalid utf8)
binary data declared as utf8.  I suppose to work around that, a more
elaborate approach like
 (0) use the attributes mechanism to allow projects to mark paths with
     encoding.  E.g.

	# everything in UTF-8 unless otherwise specified...
        * encoding=UTF-8
        Documentation/zh_CN/* encoding=big5

 (1) for each patch, find the paths involved, and if their encodings are
     the same, perhaps promote that as the encoding used for the entire
     message;
is needed.


[*] http://en.wikipedia.org/wiki/8BITMIME#8BITMIME

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help