Re: Applying .gitattributes text/eol changes
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Jan 11, 2011, 12:11 UTC
- Message-ID
- <4D2C4902.4010705@drmicha.warpmail.net>
- In-Reply-To
- <4D220500.2000104@syntevo.com>
Marc Strapetz venit, vidit, dixit 03.01.2011 18:18:
Show 8 quoted lines
> I'm looking for an unobtrusive way to apply (committed) changes for > text/eol attributes to the working tree. For instance, after having > changed "*.txt eol=crlf" to "*.txt eol=lf", all *.txt files should be > converted from CRLF to LF endings. The only advice I found so far is to > remove .git/index and do a reset --hard. The disadvantage of this > approach is that every file will be touched: > > - although the content does not change, timestamps will be changed. This
The bytewise content does change.
> makes tools like IDEs assume that the file content has been changed.
It may be that the content is semantically equivalent.
Show 11 quoted lines
> (Even if the timestamps would be properly reset, the replacement of the > files would have triggered system file change notifications and I'd > expect various tools to still reload these files) > > - there will be warnings for files which are locked by other processes > (at least on Windows). I'm usually seeing this for JAR files which are > not affected by eol-attribute changes at all. > > One solution I could think of which might be helpful in other situations > as well would be to have an "--unobtrusive" option for reset which would > only replace a file if the content has actually been changed.
How about
git ls-files \*.txt | xargs touch -a git ls-files \*.txt | git checkout
?