CRLF issues on checkout (was Re: Gnucash 2.5/6 - jqplot)
Geert Janssens
janssens-geert at telenet.be
Sun Feb 24 05:22:30 EST 2013
Op 24-02-13 10:46, Christian Stimming schreef:
> Am Samstag, 23. Februar 2013, 18:23:13 schrieb Mike Alexander:
>>> I think the easiest way out here (as long as we're still using SVN)
>>> is to set the per-file SVN property svn:eol-style to some fixed
>>> value (here: LF). This ensures the file get one canonical set of eol
>>> markers.
>> Do you really want to use LF for eol-style for these file types? I
>> would think that "native" would work better. That's what I've been
>> using for years on various SVN projects and it seems to work well. I
>> don't work on Windows much anymore, but I used to and often worked on
>> the same file on both systems. "Native" is also what the stackoverflow
>> article you mention suggests. If you specify this eol format then the
>> local file will be in the native format but the repository version will
>> always be with LF line endings.
> Yes, I do really want to set a deterministic eol-style instead of choosing the
> somewhat non-deterministic "native" style here. Think of it: We decide on one
> style, but with "native" you still say "well, depending on the OS you're
> looking at SVN, the files will end up this or that way." Not what I would call
> deterministic.
>
> I have one specific use case where "native" really fails: Some co-workers and
> me regularly work with a dual-boot machine that runs either Linux or Windows,
> but uses a SVN checkout on the same partition. With eol-style=native, the
> files in the identical working copy end up differently depending on the last
> OS I've used to work with the working copy. In that (admittantly pecurliar)
> case, one specific eol-style (LF or CRLF) works but eol-style=native does not
> work.
I had not mentioned this in my reply, but I have a similar setup. Not
dual boot, but a primary linux machine and a Windows installation in a
VM, sharing a common directory. This worked fine as long as I was
working with svn (because we had explicitly set the EOL styles already).
Once I switched to git I started running into several EOL issues again,
which prompted me to write the .gitattributes file to match the svn config.
Recently I have moved away from the shared directory approach though.
Now I use my linux repo as upstream repo for a dedicated repo for the
Windows build. The disadvantage with this is that I have to check in
anything I changed on the linux side before I can test in on the Windows
side, but it's a minor inconvenience.
> On the other hand, there were times when eol-style=native was necessary:
> Earlier windows compilers would refuse to compile source code that did not
> have CRLF line endings. For Microsoft Visual Studio, this was no longer the
> case with at least MSVC 2005 (but I've encountered other cross-platform IDEs
> on windows that would still require CRLF line endings). If such a compiler is
> in the set of target platforms, then yes, using eol-style=native or CRLF is
> better.
This is also why some of the files in the win32 directory are marked
explicitly for CRLF EOL style. The inno setup compiler is one of those
tools that has issues with LF only EOL style. And for safety we also
mark all windows native scripts as CRLF (.BAT and friends). I seem to
remember them also behaving oddly when they used LF EOL.
Geert
More information about the gnucash-devel
mailing list