All of lore.kernel.org
 help / color / mirror / Atom feed
* Per file configurable eol-style transformations with Git?
@ 2009-11-21 20:21 Alexander Veit
  2009-11-21 21:18 ` Jakub Narebski
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Veit @ 2009-11-21 20:21 UTC (permalink / raw)
  To: git

Hi,

we have projects that contain text files that need to
have different end-of-line sequences, depending on the
type of file, and depending on the operating system where
they are checked out.

There are files that have

 - LF line breaks on each platform,
 - CR LF line breaks on each platform, or
 - either LF or CR LF line breaks, depending on the
   platform's native end-of-line style.

With Subversion, the correct behaviour in checkouts, commits,
diffs, or merges can easily be achieved by setting the appropriate
svn:eol-style [*].

As I understand the Git documentation there's no such concept as a
repository end-of-line style, or as an end-of-line transformation
between repository and working copy.

So I wonder if it is possible to mimic Subversion's end-of-line handling
with Git, especially for the svn:eol-style=native.

-- 
Regards,
Alex


[*]
http://svnbook.red-bean.com/nightly/de/svn-book.html#svn.advanced.props.special.eol-style

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Per file configurable eol-style transformations with Git?
  2009-11-21 20:21 Per file configurable eol-style transformations with Git? Alexander Veit
@ 2009-11-21 21:18 ` Jakub Narebski
  2009-11-21 23:49   ` Alexander Veit
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Narebski @ 2009-11-21 21:18 UTC (permalink / raw)
  To: Alexander Veit; +Cc: git

"Alexander Veit" <alexander.veit@gmx.net> writes:

> we have projects that contain text files that need to
> have different end-of-line sequences, depending on the
> type of file, and depending on the operating system where
> they are checked out.
> 
> There are files that have
> 
>  - LF line breaks on each platform,
>  - CR LF line breaks on each platform, or
>  - either LF or CR LF line breaks, depending on the
>    platform's native end-of-line style.
> 
> With Subversion, the correct behaviour in checkouts, commits,
> diffs, or merges can easily be achieved by setting the appropriate
> svn:eol-style [*].
> 
> As I understand the Git documentation there's no such concept as a
> repository end-of-line style, or as an end-of-line transformation
> between repository and working copy.
> 
> So I wonder if it is possible to mimic Subversion's end-of-line handling
> with Git, especially for the svn:eol-style=native.

See `crlf` attribute, which can be set, unset, unspecified, set to
"input", and used together with core.autocrlf ("true", "false", "input")
and core.safecrlf.  Attributes can be set per path (using globbing
patterns) in .gitattributes file in tree, or in .git/info/attributes
(per repository).

HTH
-- 
Jakub Narebski
Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Per file configurable eol-style transformations with Git?
  2009-11-21 21:18 ` Jakub Narebski
@ 2009-11-21 23:49   ` Alexander Veit
  2009-11-22  1:24     ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Veit @ 2009-11-21 23:49 UTC (permalink / raw)
  To: git

Jakub Narebski wrote:

> See `crlf` attribute, which can be set, unset, unspecified, set
> to "input", and used together with core.autocrlf ("true", "false",
> "input") and core.safecrlf.  Attributes can be set per path (using
> globbing patterns) in .gitattributes file in tree, or in
> .git/info/attributes (per repository).

I've already tried 

[core]
  autoCRLF = true

in the global gitconfig under Windows. After git clone an immediate
git diff shows every line changed in certain files:

diff --git a/c_crlf_text.txt b/c_crlf_text.txt
index 3b0a76f..3473745 100644
--- a/c_crlf_text.txt
+++ b/c_crlf_text.txt
@@ -1,5 +1,5 @@
-z1
-z2
-z3
-z4
-
+z1
+z2
+z3
+z4
+

file * on Windows:
c___lf_text.txt;  ASCII text, with CRLF line terminators
c_crlf_text.txt;  ASCII text, with CRLF line terminators


file * on Linux
c_crlf_text.txt:  ASCII text, with CRLF line terminators
c___lf_text.txt:  ASCII text

I don't know if this behaviour is supposed to be correct,
but to me it seems to be wrong.

git version 1.6.5.1.1367.gcd48

-- 
Cheers,
Alex

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: Per file configurable eol-style transformations with Git?
  2009-11-21 23:49   ` Alexander Veit
@ 2009-11-22  1:24     ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2009-11-22  1:24 UTC (permalink / raw)
  To: Alexander Veit; +Cc: git

"Alexander Veit" <alexander.veit@gmx.net> writes:

> Jakub Narebski wrote:
>
>> See `crlf` attribute, which can be set, unset, unspecified, set
>> to "input", and used together with core.autocrlf ("true", "false",
>> "input") and core.safecrlf.  Attributes can be set per path (using
>> globbing patterns) in .gitattributes file in tree, or in
>> .git/info/attributes (per repository).
>
> I've already tried 
>
> [core]
>   autoCRLF = true
>
> in the global gitconfig under Windows.

That would not be per-file anyway.

What Jakub suggested makes sense.  You want to read up on
gitattributes(5).

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-11-22  1:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-21 20:21 Per file configurable eol-style transformations with Git? Alexander Veit
2009-11-21 21:18 ` Jakub Narebski
2009-11-21 23:49   ` Alexander Veit
2009-11-22  1:24     ` Junio C Hamano

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.