From: Finn Arne Gangstad Date: Thu, 24 Jun 2010 11:17:57 GMT Subject: Re: What's cooking in git.git (Jun 2010, #04; Wed, 23) Message-ID: <20100624111757.GB3453@pvv.org> In-Reply-To: <7viq59e6zn.fsf@alter.siamese.dyndns.org> On Wed, Jun 23, 2010 at 03:09:32PM -0700, Junio C Hamano wrote: > * eb/double-convert-before-merge (2010-06-16) 1 commit > - ll-merge: Normalize files before merging > > If running git-to-worktree and then worktree-to-git _fixes_ something, it > means that these are not roundtrip operations; there is something that is > fundamentally wrong. The commit log message doesn't help explaining it, > either. If .gitattributes is different on the different sides, or if you enable autocrlf, the current repo contents may change after git-to-worktree and worktree-to-git again. This is most easily seen if you add some eol attributes, but also with clean/smudge filters, ident and so on. Assume you start out with a repo that has a lot of text files with CRLF checked in (A). C---- / \ A---B---D B: Add "* text=auto" to .gitattributes and normalize all files to LF only in repo D: try to merge C Without this patch you will get a ridiculous number of lf/crlf conflicts when trying to merge C into D, since the repository contents for C are "wrong" wrt the new .gitattributes file. - Finn Arne