Re: sending attachments via git send-email
- From
- Pratyush Yadav <p.yadav@ti.com>
- Date
- Feb 3, 2020, 08:11 UTC
- Message-ID
- <20200203081143.zv6f5tb3prp6kd4v@ti.com>
- In-Reply-To
- <20200203064712.14621-1-shouryashukla.oo@gmail.com>
Hi Shourya,
My $0.02:
On 03/02/20 12:17PM, Shourya Shukla wrote:
Show 8 quoted lines
> Hello everyone, > > I was doing some tests on 'git send-email'[1] and noticed a couple of things: > > 1. We are not able to send attachments via 'git send-email' unlike > various other mail clients such as GMail, Yahoo, etc. Is there > any particular reason for this (maybe performance issues or code > compatibility issues etc.)?
IMO git-send-email shouldn't really be used for sending attachments. That is the job of other mail clients that you mention. git-send-email's purpose is to make it easier to send commits/patches via mail in plain text form. Its purpose is not to be a general mail client.
Show 15 quoted lines
> 2. Even so, I tried sending an image to myself and noticed that the > command basically does not check if we are sending a text file or > not(though I think it should unless there is any key reason behind it). > On executing the command(when trying to send an image), it asks for the > encoding (that was odd as it did not ask for any of emails I have sent > using the command). I entered the command: > 'git send-email --to=shouryashukla.oo@gmail.com --subject=test_mail me.JPG' > which prompts: > 'The following files are 8bit, but do not declare a Content-Transfer-Encoding.' > 'me.JPG' > 'Which 8bit encoding should I declare [UTF-8]?' > So i enter the encoding as '8BIT', which at the end prompts: > 'No subject line in me.JPG? at /usr/lib/git-core/git-send-email line 687.' > > Why is this happening even though I entered the subject in the command itself?
I don't know much about the internals of git-send-email (or the JPEG image format), but my guess is git-send-email tries to decode the JPEG file as a text file and then fails to detect encoding, and so asks the user explicitly what the encoding is. I don't necessarily think that is a bad thing. You shouldn't be sending images via git-send-email.
That said, maybe it would be a good idea to check the mime type of the file and warn the user.
Show 7 quoted lines
> 3. I looked up at the script of the command and noticed that there are two files,
> namely: 'git-send-email.perl' and 'git-send-email', both are identical except for
> an extra 'use lib (split(/:/, $ENV{GITPERLLIB} || '/home/<<username>>/share/perl5'));'
> on line 3 of 'git-send-email'(my inference is that we are trying to import the perl
> library by splitting the addresses at '/' or something similar). What is the purpose
> of the latter file?(I am new to Perl, if I am missing out on anything please forgive
> my ignorance).Running 'git ls-files | grep git-send-email' gives me:
Documentation/git-send-email.txt git-send-email.perl
So it means the file 'git-send-email' is not tracked and is an output from the build system. My guess is that the build system inserts this line when you run 'make'. Check the file 'perl/header_templates/fixed_prefix.template.pl'.
-- Regards, Pratyush Yadav