git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marius Storm-Olsen <marius@trolltech.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Junio C Hamano <gitster@pobox.com>,
	Johannes Sixt <j.sixt@viscovery.net>, git <git@vger.kernel.org>
Subject: Re: [PATCH 0/2] Respecting core.autocrlf when showing objects
Date: Thu, 12 Jun 2008 11:03:03 +0200	[thread overview]
Message-ID: <4850E647.7050602@trolltech.com> (raw)
In-Reply-To: <alpine.DEB.1.00.0806112000400.1783@racer>

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

Johannes Schindelin said the following on 11.06.2008 21:06:
> On Wed, 11 Jun 2008, Marius Storm-Olsen wrote:
>> 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
> 
> This is not really how I would do things.  I would do
> 
> 	git checkout side file.txt here.

Uhm, 'git checkout side file.txt' is not the same file content 
(ignoring EOLs please) as 'git show :3:file.txt'.
Ref: user-manual.html#conflict-resolution

> The _point_ is: "git show" is supposed to show you the contents _in the 
> repository_.  For example, no smudge/clean filters will be heeded, and 
> neither other attributes.

You are describing "git cat-file".
IMO, "git show" should have more consideration towards the repo 
settings. I doubt anyone, excluding yourself and a few more 
old-timers, think the content they get out from "git show <file>" is 
*not* the content they'll get when they decide to "git checkout 
<file>". For most people the commands a mostly the same, except that 
"show" just stdout-dumps the content, while "checkout" writes it to 
disk. The subtle difference there is simply just confusing, and is 
what we need to fix so people won't find Git so hard to use. It's all 
about usability. Let "git cat-file" do raw dumps, and "git show" what 
most people would expect.

Seen another way: If you "git show" any object, they are formated in a 
nice way for the user to see the output; not raw dumps. There's no 
reason why the user should even consider that when they show a plain 
blob, *then* it's raw (in the sense that EOLs are not handled properly).

The "show" command is too nice and convenient for it to have such a 
disrespect for the user.

> Further, "git show" will work without any problems in any bare repository.

Sure, it writes to stdout, and not to file. People understand that.

> In other words: "git show" is _not_ an operation on a working directory.

See above. Nobody expect it to touch files. However, any repo (even 
bare) still has a config file though, and "git show" should respect 
its settings.

> "git checkout" is.  So use that instead.

"git checkout" doesn't munge :<stage>:, which is what the 
documentation is referring to when it comes to conflict resolution.

>> Given that 'git show' *is* porcelain, I'd expect it to work 'naturally' 
>> in my workflow, and not dump raw object store content.
> 
> Do not confuse porcelain with "works on the working directory".

I don't. But I'm trying to see the workflow from a non-git-master POV, 
you're obviously not.

>> 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.
> 
> But it _does_ matter!
> The index works on raw objects, not on smudged files.  Period.

You misunderstood me. I don't smudged files in the index.

-- 
.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-12  9:04 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
2008-06-11  8:25                       ` Jakub Narebski
2008-06-11 19:06                       ` Johannes Schindelin
2008-06-12  9:03                         ` Marius Storm-Olsen [this message]
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=4850E647.7050602@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 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).