Marc Strapetz venit, vidit, dixit 11.01.2011 15:02: > On 11.01.2011 13:11, Michael J Gruber wrote: >> Marc Strapetz venit, vidit, dixit 03.01.2011 18:18: >>> 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. > > The content has only changed for *.txt files, but the timestamps of > *all* files are updated. I guess (but didn't verify from code), that in Well, sure... > case of missing .git/index, Git freshly writes all working tree files, > ignoring already existing files which already have the correct content. > Maybe this behavior is by intention and makes sense in some cases. In my > case it has adverse effects on IDEs and probably other tools which are > monitoring the file system. ...but changing gitattributes is something you don't do routinely in your workflow; so, at worst there would be an occasional unnecessary run of your build process. > >>> 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 > > That won't be helpful as it requires me to know what has changed. But you do know that only (at most) *.txt have changed! Michael -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html