views:

3048

answers:

6

After migrating to Windows, I'm using msysgit with its included bash shell, and that's working well for me. But I have issues: our ant build process won't run in that shell, I'd like to use Cygwin's xterms instead of the Windows command window, since the terminal compatibility isn't good enough to run everything else I'd like in that window, and so on.

I've actually made a go of sticking with msysgit in the Windows command shell so that I don't have to use a separate window to build, but that's got even more problems: the lack of cd - and file completion is killing me, most of the commands I'd like to pipe to aren't present, etc.

So if I switch to using Cygwin's git, or worse, use both at different times, are line-endings going to bite me? Will Cygwin's git expect everything to be \n and think it's seeing changes because mSysGit converted to \r\n when checking out? Will Cygwin's git check out as \n and confuse my Windows Eclipse, which I'm sure wants everything to be \r\n?

+9  A: 

The simplest approach would be to set any git (msysGit or Cygwin git) to ignore crlf styles.

core.autocrlf=false

That way, you do not have ant unwanted conflict.

VonC
That pointed me in the right direction, except I think what I have to do is set it to true from Cygwin. I have to keep the CRLF-style terminators for compatibility with other windows apps, I think.
skiphoppy
What other windows app ? As Peter Boughton says in his answer, "Most modern applications (including Eclipse) are perfectly capable of using \n only."
VonC
I've actually had line-ending issues with using different versions of msysGit. Explicitly setting autocrlf fixed it.
T.E.D.
@ted: interesting. I always try to maintains all my msysGit at the same version, and did not experienced that.
VonC
Notepad still can't handle \n line endings, but everything else I'd ever want to use certainly does.
George V. Reilly
+2  A: 

Will Cygwin's git check out as \n and confuse my Windows Eclipse, which I'm sure wants everything to be \r\n?

Most modern applications (including Eclipse) are perfectly capable of using \n only.

There are a few annoying exceptions (e.g. email protocol), but in most cases you can stick to just using \n for everything.

So, as VonC says, just disable the autocrlf setting and it'll be fine.

Peter Boughton
Unless skiphoppy has a very particular context calling for \r\n usage, I agree with you. +1
VonC
+1  A: 

Actually, just sticking with msysGit won't save you. I had one issue where every single source file showed as changed because of the line-ending issue when using different versions of msysGit. Setting core.autocrlf in the git config file fixed it.

T.E.D.
+1  A: 

From this post - "Setup GIT Server with Msysgit on Windows" - a user suggested this link - http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/

I used this setup and works flawlessly on Windows for Me.

Hope it helps

Jerry
A: 

I got headache on the line endings. I'm using cygwin git, and it always report some newly checked-out text files as "modified". When I changed "core.autocrlf" from "true" to "input" ten out of fifteen files disappeared from the modified list, and the remaining 5 went away after I set "core.autocrlf" to "false".

I can't vote for VonC's solution due to low reputation but I would say it works for me.

NovelX
A: 

I set core.autocrlf to false in msysgit and took whatever cygwin installed by default.

I had problems checking out from a command prompt using cygwin tools and the mingw tools shipped with msysgit, because of apparent changes in file modes (755 appeared to change to 644 in every file). This appears to be an issue regarding the executable bit. git reset didn't help.

However, doing the initial clone from the msysgit GUI window did not produce this problem, and I now appear to be free to use cygwin either from its own bash shell or a command prompt, or msysgit from its bash shell. In other words everything seems happy.

So bottom line if you're seeing every file appearing to change and line-endings doesn't appear to be the cause of the problem, try checking out from the GUI.

WaffleSouffle