From: Walter Bright <boost@digitalmars.com>
To: git@vger.kernel.org
Subject: Re: noob user, want checkins to all be forced to LF terminated lines
Date: Fri, 30 Jul 2010 22:14:40 -0700 [thread overview]
Message-ID: <i30bg7$50k$1@dough.gmane.org> (raw)
In-Reply-To: <20100731044957.GA8920@burratino>
Jonathan Nieder wrote:
> Walter Bright wrote:
>
>> I've just started with git.
>
> I thought I saw you here years ago. :)
I've been around, just not in git.
>> Exactly what do I put in $HOME/.gitconfig ?
>
> Well, naturally it depends on what you want to happen.
>
> If you just want to make sure any new files you commit are tracked
> with simple LF line endings, you can use
>
> [core]
> autocrlf = input
>
> With this setting, Git will not do any munging to files in the work
> tree in any way (unless there is a .gitattributes file requesting to
> do so).
git is installed under Ubuntu, but I'll be checking in files that I edit on both
Windows and Ubuntu, so the line endings will vary depending on which platform I
last editted the file on. Hence, I want to force them all to be LF upon checkin.
> That is an _altruistic_ setting to use. It ensures you do not pollute
> history with some alternative line-ending, but your own work tree may
> not necessarily match the cleaned up versions you are checking in; so
> if you try to "git add" and then "touch" a file with CRLF line endings
> with this setting enabled, you may be surprised at the result!
> (Though a simple "git checkout file.c" afterwards should fix up the
> line endings in the work tree.)
> If you want to make sure text files in the work tree use LF line
> endings and you are using a recent version of Git, use the above
> setting or
>
> [core]
> eol = lf
So this changes the file in the repository to lf only, but not in the worktree?
That's what I want.
> On Unix-y systems, you do not have to do that, since it is the
> default. On Windows, the "[core] autocrlf" setting is set up
> by default in /etc/gitconfig so you would probably want to
> override that with
>
> [core]
> autocrlf = false
>
> if you are not setting it to input.
>
> Which files are text files? you may ask. By default (unless
> autocrlf is enabled), Git treats files as raw data; to get it
> to futz with line endings, you have to declare your text files
> in a file named .gitattributes in the tracked tree.
>
> * crlf
> *.jpg -crlf
> *.png -crlf
In the tracked tree? The documentation:
http://www.kernel.org/pub/software/scm/git/docs/gitattributes.html#_checking_out_and_checking_in
says it goes in:
$GIT_DIR/info/attributes, .gitattributes
so I'm confused again. Does .gitattributes go in $GIT_DIR, or in $GIT_DIR/info ?
And what if both of those files are there, which one 'wins' ?
> The keyword crlf here means “apply line-ending conversions” and
> nothing more. In particular, it does not represent the preferred
> line ending.
>
> If everyone for which you want these setting to take effect uses a
> recent version of git, you can write “text” instead of “crlf” if
> you prefer.
git --version says I'm using 1.5.6.3
> Hope that helps,
Yes, it does, thank you!
A final question: where does the repository actually go (so I can back it up)?
This is a local thing, I'm not trying to set up a networked or remote
repository, so it'll be the default location.
next prev parent reply other threads:[~2010-07-31 5:15 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-31 4:23 noob user, want checkins to all be forced to LF terminated lines Walter Bright
2010-07-31 4:49 ` Jonathan Nieder
2010-07-31 5:14 ` Walter Bright [this message]
2010-07-31 5:39 ` Ilari Liusvaara
2010-07-31 5:45 ` Walter Bright
2010-07-31 5:57 ` Ilari Liusvaara
2010-07-31 6:24 ` Walter Bright
2010-07-31 15:12 ` David Aguilar
2010-07-31 5:44 ` Jonathan Nieder
2010-07-31 6:32 ` Walter Bright
2010-07-31 6:41 ` Ilari Liusvaara
2010-07-31 20:38 ` Jonathan Nieder
2010-07-31 20:51 ` Walter Bright
2010-08-03 23:56 ` Jay Soffian
2010-08-04 5:29 ` Will Palmer
2010-07-31 5:41 ` Miles Bader
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='i30bg7$50k$1@dough.gmane.org' \
--to=boost@digitalmars.com \
--cc=git@vger.kernel.org \
/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).