Junio C Hamano venit, vidit, dixit 01.03.2011 15:50: > Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> writes: > >> No. ':foo' as a reference to 'foo' in index is a SHA1-extended syntax >> and I think we try to avoid ambiguation when a sha1-extended syntax >> may look like a path or vice versa. > > Very true. > > Just as a thought experiment (I am skeptical about this whole "this is > from root" prefix idea to begin with, but I don't want to shoot an idea > down prematurely when there may still be untold gems I haven't seen in > it): > > $ git grep -e frotz .../ > > to abbreviate "I don't bother to count my ../" might be an alternative, > though. > > The reason I am skeptical about the "from root prefix" is because I do not > see a way to make it compatible with other meaningful pathspecs. > > $ cd Documentation > $ git grep -e frotz '*.txt' > > would find frotz in all *.txt files in Documentation (and its > subdirectories), if the command takes "relatigve to cwd". > > It also is very clear that > > $ cd Documentation > $ git grep --full-tree -e frotz '*.txt' > > would find those anywhere, inside or outside Documentation. > > On the other hand, it is natural to expect that > > $ git grep -e frotz ".../*.txt" > > should find *.txt files _only_ at the root level, so it is not as useful as > the --full-tree (or --root). Exactly that is (one of the reasons) why I used something which does not look like "as many ../ as necessary" nor like "/". With my implementation, git grep -e frotz ":*.txt" from a subdir will grep the exact same files as (cd $(git rev-parse --cdup) && git grep -e frotz "*.txt") will (it is --full-tree!), and will output the results relative to the current workdir. Note that we already have to disambiguate between revspecs and pathspecs with -- in several places; that is not different with the new notation, and even not more frequent if it is not used. I have to say I'm really excited about how transparently this works across all kinds of commands, and how suggestive this is with rev:path in mind. Also, e.g., git grep -e frotz "*.c" ":*.h" will look in all C files in the cwd and and all headers everywhere. Just think of the possibilities, and of the usefulness with clean, add, commit, reset,...! Michael -- 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