From: Junio C Hamano Date: Sat, 14 May 2005 18:12:16 GMT Subject: Re: [RFD] Ignore rules Message-ID: <7vsm0py8vz.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <20050514153027.GN3905@pasky.ji.cz> >>>>> "PB" == Petr Baudis writes: PB> Here, I would like more people to speak up, plaese, especially the PB> authors of other layers over git than Cogito, since I think it'd be PB> great if we could agree on common ignore rules format and we could just PB> call the files ".gitignore" instead of ".cgignore", ".jitignore" etc. Purely off the top of my head, without even regurgitating what you wrote in the message I am responding to (sorry, I am about to leave for the day). * Two lists, one propagated with merges and another repository private one. * GIT_DIR/info/ignore is the one propagated with merge but it is not a list itself. It records the name of a file that is GIT tracked. GIT_DIR/ignore is the repository private one. * Repository private one and then merge propagated one are read in order, one line at a time. The first hit determines whether it is taken or ignored. * Each entry in the list is not a shell glob but a regexp. The ignore list rarely changes, so more expressiveness with a bit higher learning curve and a bit more typing would not hurt much. The entry is implicitly anchored at the left and matched against the path relative to what is recorded in GIT_INDEX_FILE (so 'Makefile' matches "Makefile" in linux-2.6.git/ but not "fs/Makefile"). The regexp can optionally prefixed with a '!' to mean negation. A line that starts with a '#' is a comment.