Jeff King <peff@xxxxxxxx> writes: > Our gitignore doesn't use a preceding "/" to root its > patterns in the top of the repository. This means that if > you add a file or directory called "git" (for example) > inside a subdirectory, it will be erroneously ignored. > > This patch was done mechanically with "s/^[^*]/\/&/" with > one exception: instead of ignoring gitk-wish, we should > gitk-git/gitk-wish (arguably, this should be done in > gitk-git/.gitignore, but because that is a subtree merge > from elsewhere, this is easier). > > Acked-by: Sverre Rabbelier <srabbelier@xxxxxxxxx> > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > > This bit Sverre while I was looking over his shoulder. I doubt it comes > up very often, but we should probably be modeling good gitignore > behavior. I have to admit it looks a lot uglier, though. How does .cvsignore and .svnignore work? Don't they have the same issue, and perhaps worse as I do not recall seeing a way to anchor a pattern to a particular directory like we do in their .SCMignore files? And judging from the fact that they can get away with the lack of that "feature", this perhaps is not an issue in real life? I am actually a bit reluctant to queue this, even though I most likely will, and then hope that we will think of a better solution later, at which time this file again needs to change. For example, it crossed my mind that perhaps we can change the ignore rules so that a non-globbing pattern is automatically anchored at the current directly but globbing ones are recursive as before. If we do so, there is no need to change the current .gitignore entires. You need to spell a concrete filename as a glob pattern that matches only one path if you want the recursive behaviour. E.g. if you have a Makefile per subdirectory, each of which generates and includes Makefile.depend file, you would write "Makefile.depen[d]" in the toplevel .gitignore file. But that is a kind of incompatible change whose necessity is unproven and has to cook and wait. -- 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