Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > This really updates three different areas, which are nicely > separated into three different files, so while it's one single > patch, you can actually follow along the changes by just looking at > the differences in each file, which directly translate to separate > conceptual changes: Ok, I have now acquired enough passing familiarity with the code that I find part of my way around it. Most of your patch looks like it caters for the S_ISDIR type not previously in use in the index (how about the repository?). So that makes for quite a bit of nicer looks. The disadvantage is that it introduces a new data type and thus one has to check all the code paths to see how older versions of git will cater with newer data. My idea of a fake zero-length file would have had predictable side effects: For checking out, git would have created the directory it needed to place the "file", then try to write an empty file called "." and failing. Apart from an error message (if we aren't root on Solaris), this would have worked exactly as intended. For deletion on checking out, git would have tried deleting "." and failed. I have not checked the code to see whether git takes this as a clue not to attempt deleting the containing directory. If not, again stuff would have worked as intended. If yes, well, the user needs to clean up manually. I am not sure what code paths are executed when using S_ISDIR now in unmodified git. As a theoretical question for now: do git repositories carry some versioning inside them? Something like "don't touch me if you are not at least version x"? Anyway, the code becomes quite less of a dirty hack by using that data type, so I am pretty much taking your code (which has no overlap to the work I have done already) as is. Seems like it should play together quite nicely with my own stuff. So thanks for doing the heavy lifting in a difficult area. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum - 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