All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marius Storm-Olsen <marius@trolltech.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Johannes Sixt <j.sixt@viscovery.net>, git <git@vger.kernel.org>
Subject: Re: [PATCH 0/2] Respecting core.autocrlf when showing objects
Date: Wed, 11 Jun 2008 08:01:11 +0200	[thread overview]
Message-ID: <484F6A27.1040602@trolltech.com> (raw)
In-Reply-To: <7vk5gxc4gz.fsf@gitster.siamese.dyndns.org>

[-- Attachment #1: Type: text/plain, Size: 2466 bytes --]

Junio C Hamano said the following on 11.06.2008 00:25:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>> On Tue, 10 Jun 2008, Marius Storm-Olsen wrote:
>>> When you use 'git show <rev>:<file>' or 'git show :<stage>:<file>', the 
>>> objects are shows as they are in the object store, ignoring the 
>>> core.autocrlf configuration.
>> I think this is the correct behaviour: inside the object repository, the 
>> files are supposed to be LF clean.
>>
>> Likewise, things in the unmerged stages are in the index, which again is 
>> not the working directory, so they should be LF clean.
>>
>> _Only_ when writing a file to the working directory, it should get 
>> clobbered.
> 
> I'd agree with your argument on general principle, but it might make sense
> to give an option to let you say "here is a blob contents, and use the
> attribute for this path to munge it out to the filesystem."  I am not sure
> if that belongs to "git show" Porcelain, though.  It _could_ be more like:
> 
>         git checkout-blob $blob_sha1 $path
> 
> that (1) reads the blob object specified by its object name, (2)
> grabs attribute for the $path, and (3) applies convert_to_worktree()
> filtering given that attribute and deposits the results to $path.
> 
> Alternatively, the interface could be:
> 
>         git cat-file blob $blob_sha1 |
>         git filter-blob --use-attr-for=$path >$path.old
> 
> so that you can then do:
> 
> 	git diff --no-index $path.old $path
> 
> I dunno.

Well, consider this:
Say you are merging two branches, and know that you want to just use 
the parts which conflict from the branch being merged in. Then you 
simply do:
	git merge side
	git show :3:file.txt > file.txt
	git add file.txt
	git commit ...blah blah...

Now, with the current behavior, this workflow breaks for 
core.autocrlf=true repos. Given that 'git show' *is* porcelain, I'd 
expect it to work 'naturally' in my workflow, and not dump raw object 
store content.
However, I also see that it can be useful at times. Almost makes me 
consider a --raw option to 'git show' for those seldom cases. IMO, 
'git show' *should* care about autocrlf. Not doing so is just 
confusing to the end-user.

The fact that the stage files are in the index doesn't matter. I'd 
want CRLF files from 'git show v1.5.6-rc0:builtin-log.c' as well.

-- 
.marius [@trolltech.com]
'if you know what you're doing, it's not research'


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 187 bytes --]

  reply	other threads:[~2008-06-11  6:02 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <"Storm-Olsen*"@MHS>
2008-06-09 11:40 ` [PATCH] Add testcase for merging in a CRLF repo, showing that conflict file is in LF only Marius Storm-Olsen
2008-06-09 13:37   ` Johannes Sixt
2008-06-09 14:46     ` Marius Storm-Olsen
2008-06-09 15:05       ` Johannes Sixt
2008-06-09 19:44       ` Marius Storm-Olsen
2008-06-09 21:22     ` [PATCH 1/2] Add testcase for merging in a CRLF repo Johannes Schindelin
2008-06-09 21:23       ` [PATCH 2/2] merge-recursive: respect core.autocrlf Johannes Schindelin
2008-06-09 21:36         ` Junio C Hamano
2008-06-09 22:59           ` [PATCH v2] " Johannes Schindelin
2008-06-09 23:23             ` Junio C Hamano
2008-06-09 23:35               ` Johannes Schindelin
2008-06-10  8:10               ` [PATCH 0/2] Respecting core.autocrlf when showing objects Marius Storm-Olsen
2008-06-10  7:40                 ` [PATCH 1/2] Add testcases for verifying that staged files in a conflict are CRLF, when core.autocrlf = true Marius Storm-Olsen
2008-06-10  7:55                 ` [PATCH 2/2] Ensure that objects shown in a core.autocrlf = true repo have CRLF EOLs Marius Storm-Olsen
2008-06-10 15:34                 ` [PATCH 0/2] Respecting core.autocrlf when showing objects Johannes Schindelin
2008-06-10 22:25                   ` Junio C Hamano
2008-06-11  6:01                     ` Marius Storm-Olsen [this message]
2008-06-11  8:25                       ` Jakub Narebski
2008-06-11 19:06                       ` Johannes Schindelin
2008-06-12  9:03                         ` Marius Storm-Olsen
2008-06-12 19:33                           ` Junio C Hamano
2008-06-12 19:55                             ` J. Bruce Fields
2008-06-12 20:27                               ` Jakub Narebski
2008-06-12 20:45                               ` Junio C Hamano
2008-06-12 20:50                                 ` Jon Loeliger
2008-06-12 20:16                             ` Marius Storm-Olsen
2008-06-09 11:40 ` [PATCH] Add testcase for merging in a CRLF repo, showing that conflict file is in LF only Marius Storm-Olsen

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=484F6A27.1040602@trolltech.com \
    --to=marius@trolltech.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j.sixt@viscovery.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.