Re: [PATCH 2/2] merge-recursive: respect core.autocrlf
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 9, 2008, 21:36 UTC
- Message-ID
- <7vod6affz6.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <alpine.DEB.1.00.0806092223010.1783@racer>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 31 quoted lines
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> builtin-merge-recursive.c | 8 ++++++++
> t/t6033-merge-crlf.sh | 2 +-
> 2 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/builtin-merge-recursive.c b/builtin-merge-recursive.c
> index 7643f17..edd023f 100644
> --- a/builtin-merge-recursive.c
> +++ b/builtin-merge-recursive.c
> @@ -525,6 +525,7 @@ static void update_file_flags(const unsigned char *sha,
> enum object_type type;
> void *buf;
> unsigned long size;
> + struct strbuf strbuf;
>
> if (S_ISGITLINK(mode))
> die("cannot read object %s '%s': It is a submodule!",
> @@ -535,6 +536,12 @@ static void update_file_flags(const unsigned char *sha,
> die("cannot read object %s '%s'", sha1_to_hex(sha), path);
> if (type != OBJ_BLOB)
> die("blob expected for %s '%s'", sha1_to_hex(sha), path);
> + strbuf_init(&strbuf, 0);
> + if (convert_to_working_tree(path, buf, size, &strbuf)) {
> + free(buf);
> + size = strbuf.len;
> + buf = strbuf_detach(&strbuf, NULL);
> + }
>
> if (make_room_for_path(path) < 0) {
> update_wd = 0;Fairly straightforward fix, except that I suspect this needs to be done only for regular files and not symlinks.
I think entry.c:write_entry() shows how this should be done.