From: "René Scharfe" <rene.scharfe@lsrfire.ath.cx>
To: Johannes Sixt <j6t@kdbg.org>
Cc: Jeff King <peff@peff.net>, Erik Faye-Lund <kusmabite@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Subject: Re: [PATCH v2 4/4] upload-archive: use start_command instead of fork
Date: Mon, 08 Aug 2011 19:10:01 +0200 [thread overview]
Message-ID: <4E401869.8060702@lsrfire.ath.cx> (raw)
In-Reply-To: <4E3EEF3B.80908@kdbg.org>
Am 07.08.2011 22:02, schrieb Johannes Sixt:
> Am 06.08.2011 11:40, schrieb René Scharfe:
>> So here's an ugly patch to implement an internal passthrough filter to
>> avoid newline conversions. It makes the tar filter command (gzip etc.)
>> write to a pipe instead of directly to a file.
>
> *If* we are working around the CRLF conversion issue in git itself,
> wouldn't it be much simpler to just:
>
> diff --git a/archive-tar.c b/archive-tar.c
> index 20af005..da3d98a 100644
> --- a/archive-tar.c
> +++ b/archive-tar.c
> @@ -364,9 +364,9 @@ void init_tar_archiver(void)
> int i;
> register_archiver(&tar_archiver);
>
> - tar_filter_config("tar.tgz.command", "gzip -cn", NULL);
> + tar_filter_config("tar.tgz.command", "gzip -cn | cat", NULL);
> tar_filter_config("tar.tgz.remote", "true", NULL);
> - tar_filter_config("tar.tar.gz.command", "gzip -cn", NULL);
> + tar_filter_config("tar.tar.gz.command", "gzip -cn | cat", NULL);
> tar_filter_config("tar.tar.gz.remote", "true", NULL);
> git_config(git_tar_config, NULL);
> for (i = 0; i < nr_tar_filters; i++) {
>
> (provided that 'cat' magically does not suffer from the same problem,
> and I do think that it does not.)
The external cat can indeed be used. We'd need to do that for user
supplied commands as well, though, like this (ugh):
diff --git a/archive-tar.c b/archive-tar.c
index 20af005..eaa9a1c 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -326,6 +326,9 @@ static int write_tar_filter_archive(const struct archiver *ar,
die("BUG: tar-filter archiver called with no filter defined");
strbuf_addstr(&cmd, ar->data);
+#ifdef WIN32
+ strbuf_addstr(&cmd, " | cat");
+#endif
if (args->compression_level >= 0)
strbuf_addf(&cmd, " -%d", args->compression_level);
> Anyway, I think it would be better to address the problem on the msysgit
> side. Perhaps by providing a gzip of a different vintage (e.g. a
> self-compiled one) that does not suffer from the CRLF conversion issue.
Users would probably also need sanitized versions of bzip2 and xz, and
perhaps more.
If MSYS could be asked to refrain from switching file descriptors to text
mode, e.g. by setting an environment variable, we could solve the issue
in a generic way instead.
René
next prev parent reply other threads:[~2011-08-08 17:10 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-18 18:08 [PATCH v2 0/4] port upload-archive to Windows Erik Faye-Lund
2011-07-18 18:08 ` [PATCH v2 1/4] compat/win32/sys/poll.c: upgrade from upstream Erik Faye-Lund
2011-07-18 18:08 ` [PATCH v2 2/4] mingw: fix compilation of poll-emulation Erik Faye-Lund
2011-07-18 18:08 ` [PATCH v2 3/4] enter_repo: do not modify input Erik Faye-Lund
2011-07-18 18:08 ` [PATCH v2 4/4] upload-archive: use start_command instead of fork Erik Faye-Lund
2011-07-19 21:09 ` Junio C Hamano
2011-07-28 8:32 ` Erik Faye-Lund
2011-07-28 16:08 ` Jeff King
2011-07-28 16:47 ` Jeff King
2011-07-28 17:02 ` Jeff King
2011-08-01 14:45 ` Erik Faye-Lund
2011-08-01 17:46 ` Jeff King
2011-08-01 18:02 ` Erik Faye-Lund
2011-08-01 18:25 ` Jeff King
2011-08-01 20:48 ` René Scharfe
2011-08-01 21:20 ` Johannes Sixt
2011-08-01 21:42 ` René Scharfe
2011-08-01 21:52 ` René Scharfe
2011-08-02 4:00 ` Jeff King
2011-08-02 16:46 ` René Scharfe
2011-08-02 18:13 ` Jeff King
2011-08-02 23:37 ` Johannes Sixt
2011-08-03 5:49 ` Jeff King
2011-08-06 9:40 ` René Scharfe
2011-08-07 20:02 ` Johannes Sixt
2011-08-07 21:06 ` Jeff King
2011-08-08 17:10 ` René Scharfe [this message]
2011-08-09 5:02 ` Jeff King
2011-08-09 10:25 ` René Scharfe
2011-08-09 20:05 ` Jeff King
2011-09-29 19:54 ` Erik Faye-Lund
2011-09-29 20:18 ` René Scharfe
2011-09-29 20:20 ` Erik Faye-Lund
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E401869.8060702@lsrfire.ath.cx \
--to=rene.scharfe@lsrfire.ath.cx \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=kusmabite@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).