From: Dmitry Potapov <dpotapov@gmail.com>
To: Tarmigan <tarmigan+git@gmail.com>
Cc: Steffen Prohaska <prohaska@zib.de>,
Avery Pennarun <apenwarr@gmail.com>,
Eyvind Bernhardsen <eyvind-git@orakel.ntnu.no>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Joshua Jensen <jjensen@workspacewhiz.com>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Subject: Re: [PATCH] Respect crlf attribute even if core.autocrlf has not been set
Date: Mon, 4 Aug 2008 20:06:30 +0400 [thread overview]
Message-ID: <20080804160630.GW7008@dpotapov.dyndns.org> (raw)
In-Reply-To: <905315640808031154j28778cd6pee75e6b008304941@mail.gmail.com>
On Sun, Aug 03, 2008 at 11:54:34AM -0700, Tarmigan wrote:
> On Sun, Aug 3, 2008 at 10:33 AM, Dmitry Potapov <dpotapov@gmail.com> wrote:
> > On Sun, Aug 03, 2008 at 09:54:42AM -0700, Tarmigan wrote:
> >>
> >> For all I care, git can consider the files as binary, but by *default*
> >> I should get back the same as I put in.
> >
> > Sorry, but Git is a source control system,
>
> I think this is the heart of the disagreement.
I guess so... Because for me it is very important that most of files I
store are text files. In fact, such operations as diff and merge would
not make much sense for binary files, would they? IOW, Git is a revision
control system, not a versioning file system.
> What I love about git
> is that git trusts me, the user, and it trusts my files.
Sure, git trusts you. You can always turn off some features if you don't
like them; but the issue having the right defaults. autocrlf=true is the
right default if you want to have CRLF in your work directory. And as
long as text heuristic is right (and it works pretty damn good), you get
exactly what you put in it. In very very rare cases where the heuristic
is wrong, it will warn you about that you are not going to have back what
you put. So, you can tell Git explicitly that you want this file stored
as binary. But this situation is very unlikely unless you store in it
something like svndump files, but storying such files in not the main
purpose of Git.
So, I don't think that this CRLF conversion is a real issue, except that
the fact that changing the global autocrlf value should not have changed
autocrlf in already existing repositories. Because autocrlf is not just
a preference, but also determines in what format your files in the working
directory are stored. So, I believe it should be corrected. But even in
this case, you do not really lose anything.
> It doesn't change the encoding of my filenames by default.
And not by default? Currently, does not support encoding filenames
from your local encoding to UTF-8. And that will be a problem at
some point if you store file names in non UTF-8 encoding. But it is
a separate issue connected to i18n support. I don't think it makes
sense to go into it right now as it is completely irrelevant to the
problem we discuss.
What is relevant is that Git *does* change filename representation.
For instance, if you try to add a file with a name 'foo\bar', Git
will actually add 'foo/bar'. You see, on check-in, Git converts the
directory separator from its Windows form ('\') to the format it uses
internally ('/').
So, it is logical to do the same text files, because text files are
sequences of lines separated by line-separator, which is CRLF on
Windows, but its internal representation in Git is LF.
> It doesn't do keyword expansion by default.
Because keyword expansion is almost always meaningless thing to do
in your working directory. It just makes things slower and you do
not win *anything*. Arguably, there are some cases when you may
want some expansion during export your sources to archive, but even
that is very uncommon.
> It doesn't change the case of filenames by default.
Change case? Would it not be a completely insane thing to do? People put
some meaning in what registry of letters when wrote names, why would you
want Git (or any source control system) to mess up with that?
> If git is not willing to change the encoding/case of file*names* by
> default, how is it acceptable to change the *content* of the files
> themselves?
It does not change the content, it changes the EOL marker from its
external to internal representation. It does the same thing as what C
library on Windows does when you read or write files in the text mode.
This should be completely transparent to users as long as autocrlf is
not changed.
Dmitry
next prev parent reply other threads:[~2008-08-04 16:08 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-22 21:56 [PATCH] Respect crlf attribute even if core.autocrlf has not been set Johannes Schindelin
2008-07-22 23:11 ` Dmitry Potapov
2008-07-22 23:23 ` Johannes Schindelin
2008-07-23 0:14 ` Dmitry Potapov
2008-07-23 0:12 ` Junio C Hamano
2008-07-23 1:10 ` Johannes Schindelin
2008-07-23 1:31 ` [PATCH] Respect crlf attribute in "git add" " Johannes Schindelin
2008-07-23 5:49 ` Steffen Prohaska
2008-07-23 9:02 ` Johannes Schindelin
2008-07-23 11:40 ` Dmitry Potapov
2008-07-24 6:06 ` Steffen Prohaska
2008-07-24 12:39 ` Johannes Schindelin
2008-07-24 17:05 ` Dmitry Potapov
2008-07-24 14:09 ` Dmitry Potapov
2008-07-24 14:38 ` Johannes Schindelin
2008-07-24 14:52 ` Steffen Prohaska
2008-07-24 16:44 ` Avery Pennarun
2008-07-24 16:45 ` Johannes Schindelin
2008-07-24 20:44 ` Robin Rosenberg
2008-07-24 23:58 ` Johannes Schindelin
2008-07-23 17:07 ` [PATCH] Respect crlf attribute " Junio C Hamano
2008-07-23 17:22 ` Johannes Schindelin
2008-07-23 18:04 ` Joshua Jensen
2008-07-23 18:33 ` Avery Pennarun
2008-07-23 18:57 ` Johannes Schindelin
2008-07-23 19:20 ` Eyvind Bernhardsen
2008-07-23 19:44 ` Johannes Schindelin
2008-07-24 21:30 ` Eyvind Bernhardsen
2008-07-25 0:01 ` Johannes Schindelin
2008-07-25 12:30 ` Eyvind Bernhardsen
2008-07-25 14:01 ` Dmitry Potapov
2008-07-25 21:05 ` Eyvind Bernhardsen
2008-07-26 2:09 ` Johannes Schindelin
2008-07-29 19:11 ` Eyvind Bernhardsen
2008-07-29 13:46 ` Dmitry Potapov
2008-07-29 21:17 ` Eyvind Bernhardsen
2008-07-30 5:35 ` Steffen Prohaska
2008-07-30 18:33 ` Avery Pennarun
2008-07-30 19:25 ` Steffen Prohaska
2008-07-30 21:07 ` Avery Pennarun
2008-07-30 22:02 ` Dmitry Potapov
2008-07-30 22:14 ` Avery Pennarun
2008-08-03 16:54 ` Tarmigan
2008-08-03 17:33 ` Dmitry Potapov
2008-08-03 18:54 ` Tarmigan
2008-08-04 16:06 ` Dmitry Potapov [this message]
2008-07-30 21:45 ` Dmitry Potapov
2008-08-02 12:51 ` Eyvind Bernhardsen
2008-08-03 16:21 ` Dmitry Potapov
2008-07-23 19:22 ` Robin Rosenberg
2008-07-23 19:35 ` Junio C Hamano
2008-07-23 19:41 ` Johannes Schindelin
2008-07-23 19:33 ` Dmitry Potapov
2008-07-23 19:23 ` Junio C Hamano
2008-07-23 20:07 ` Johannes Schindelin
2008-07-24 16:53 ` Dmitry Potapov
2008-07-24 17:14 ` Johannes Schindelin
2008-07-24 17:55 ` Dmitry Potapov
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=20080804160630.GW7008@dpotapov.dyndns.org \
--to=dpotapov@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=apenwarr@gmail.com \
--cc=eyvind-git@orakel.ntnu.no \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jjensen@workspacewhiz.com \
--cc=prohaska@zib.de \
--cc=tarmigan+git@gmail.com \
/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).