On Thu, Apr 17, 2008 at 08:07:27AM +0100, Nigel Magnay wrote: > > This has nothing to do with changing core.autocrlf after checkout - > it's a problem with *any* repo with CRLF files, being checked out on a > core.autocrlf=true machine, which basically is any windows machine. > > The current 'isDirty' check seems to be something like > > isDirty = ( wc.file.mtime > someValue ) && ( repository.file != > filter(wc.file) ) Basically, yes. > > I'm saying it ought to be something like > > isDirty = ( wc.file.mtime > someValue ) && (sha1(repository.file) != > sha1(wc.file) ) && ( repository.file != filter(wc.file) ) I don't think it is reasonable. Files inside of the repository and in the work are not meant to be the same. What if I have $Id$ expansion or something else. What could make sense is to add an additional check: && convert_to_work_tree(repository.file) != wc.file but it should be optional, so it will not penalize those who do need or do not want this extra check. > > > > > > But fixing that minor bug still leads to badness for the user. Doing > > > (on a core.autocrlf=true machine) a checkout of any revision > > > containing a file that is (currently) CRLF in the repository, and your > > > WC is *immediately* dirty. However technically correct that is, it > > > doesn't fit most people's user model of an SCM, because they haven't > > > made any modification. > > > > IMHO, the only sane way is never store CRLF in the Git repository. > > You can have whatever ending you like in your work tree, but inside > > of Git, LF is the actually marker of the end-of-line. > > > > Great. I'll go and argue with the team using svn, who don't even > *notice* this issue, and try to get them to adjust the metadata on > every single file in the repository. Maybe, you can teach git-svn to be smarter... I mean storing text files in Git repo with CRLF is stupid, so, perhaps, git-svn can do a better job converting CRLF<->LF when it exports and imports from/to SVN. > > Then, for a bonus, I'll try the same with every OSS project that I'm > tracking with git-svn. :-( > > I get that things are horribly broken if you get CRLF in your > repository. But it's unreasonable to expect the ability to bend the > rest of the world to what's convenient for me! Some of our windows > coders probably even *like* svn:eol-style=CRLF ! You can use Git and have CRLF in your work tree. You just need to have autocrlf=true for that. _Inside_ of Git, only LF is the end of line. How you store in SVN, it is a separate issue with git-svn. I guess, git-svn needs improvement in this area... Dmitry -- 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