Re: [RFD] Ignore rules
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 14, 2005, 18:12 UTC
- Message-ID
- <7vsm0py8vz.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20050514153027.GN3905@pasky.ji.cz>
>>>>> "PB" == Petr Baudis <pasky@ucw.cz> 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.