I am trying to formalize a patch workflow for our org. We have an internal project where we don't mind white-spaces(would like to keep them same for each user if possible), EOF/EOL characters etc. We have developers working on both Mac and Windows platform. AT both places we use git with Cygwin.
I read here that core.autocrlf true does the trick or you can use --keep-cr
.
But here VonC suggests core.autocrlf
false is a better strategy.
My Questions are:
--keep-cr
introduced? I use git 1.7.2 and am man page does not have this option?1.7.2 should have --keep-cr
for git am, since it was introduced in commit ad2c928 by Stefan-W. Hahn, included in Git 1.7.1.
when you know you are feeding output from "
git format-patch
" directly to "git am
", and especially when your contents have CR at the end of line, such stripping is undesirable. To help such a use case, teach--keep-cr
option to "git am
" and pass that to "git mailinfo
".
However, on Windows, I always use the latest Git For Windows release, not the cygwin one (even though you can have both).
The issue with core.autocrlf
is that it is a repository-wide setting which can affect all files (even non-text ones).
I prefer core.eol
directives.
For whitespace, you can try "git: patch does not apply":
git apply --ignore-space-change --ignore-whitespace mychanges.patch