On 9/5/07, Junio C Hamano <gitster@xxxxxxxxx> wrote: > "Dmitry Kakurin" <dmitry.kakurin@xxxxxxxxx> writes: > > > I assert that since index does not have .gitattributes the one from > > local directory should not be used. > > > > Think about dedicated build machine scenario: I have a machine that > > always does sync + build. After every sync the local directory should > > always be identical to what-was-committed. > > Thinking about the reason _why_ .gitattributes may be updated, > one would notice that it is because somebody did this command > sequence: > > git checkout ;# now work tree is clean > edit .gitattributes ;# modify the attributes of a file > edit file ;# edit the file attributes talks about > git add file ;# this can be affected by .gitattributes > git add .gitattributes ;# this is changed in the same commit > git commit > > Now, should we always take .gitattributes from the index? No, from couple of my emails back: > This leads to a simple idea that mostly works: > 1. when files are moved from index to filesystem, then only .gitattributes in the index is used, if it's not there == no special attributes. > 2. when files are moved from filesystem to index, then only .gitattributes in filesystem is used, again if it's not there == no special attributes. > > Then, in any operation, only one .gitattributes is taken into account. This is a must-do change (IMHO). To go one step further (again IMHO) is to eliminate workspace version of .gitattributes all together: > We could stop here, but to me this redundancy still has some room for confusion and looks unnecessary. > Plus there is still room for unintentional abuse (by mistake). > That's why I think it's a good idea to always have only one .gitattributes (in the index). -- - 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