From: Kristian Amlie Date: Thu, 12 Mar 2009 10:23:24 GMT Subject: Re: [PATCH 2/2] Make Git respect changes to .gitattributes during checkout. Message-ID: <49B8E29C.5080107@nokia.com> In-Reply-To: <49B8DD1D.3060908@viscovery.net> ext Johannes Sixt wrote: > Kristian Amlie schrieb: >> We do this by popping off elements on the attribute stack, until we >> reach the level where a new .gitattributes was checked out. The next >> time someone calls git_checkattr(), it will reconstruct the >> attributes from that point. > ... >> + gitattrlen = strlen(GITATTRIBUTES_FILE); >> + pathlen = strlen(path); >> + if (!strncmp(path + pathlen - gitattrlen, GITATTRIBUTES_FILE, gitattrlen)) { >> + /* Invalidate attributes if a new .gitattributes file was checked out. */ > > But if there was file .abc.txt that was checked out before .gitattributes > was checked out, then the new .gitattributes won't have been used for > .abc.txt, yet, right? You're right, that fails. I'm guessing my initial patch (and testcase) works because the sorting is alphabetical and .gitattributes happens to be checked out before files with letters. I would need to make sure that .gitattributes gets checked out first. -- Kristian