Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > It is still at what cache_name_pos(cp, namelen) pointed to, or NULL if > the entry does not exist (e.g. there is no cache entry, or all cache > entries are lexicographically smaller). > >> For example, would this work? >> >> $ echo >t- && git add t- >> $ git show :t >> $ git show :t/ > > I think so: The code explicitely checks for a trailing '/'. (See second > last line of the hunk you quoted.) The comment was not about the trailing / version, but the one without. Have you tried them? >> > + struct cache_tree *tree = >> > + cache_tree_find(active_cache_tree, cp); >> > + if (!cache_tree_fully_valid(tree)) { >> > + ret = cache_tree_update(active_cache_tree, >> > + active_cache, active_nr, 0, 0); >> > + if (ret < 0) >> > + return ret; >> >> This gracefully errs out when the index is unmerged but fails to >> pretend the index knows about trees, if the unmerged part of >> index is outside the directory the user specified. > > That is correct. But in that case, we cannot sanely ask the question "what > would the tree object look like if we committed right now?" But that is not the question you are asking. "git-ls-files t/" does work even though you still have cache.h unmerged in the index. > But then it turned out that I even use it before committing, like when I > ask "what files would be in my next revision?" It is not a question > arising daily, but sometimes it is interesting to see _before_ committing > them. (Note that I am not only interested in the _modified_ files.) So it really is about being able to say show while you mean ls-files. I am not opposed to that goal at all. I think it makes it easier to type. But I think using cache-tree is a wrong approach. - 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