Junio C Hamano wrote:
quoted
Some Git commands expect to be in the top level directory (e.g. git blame).
"Git" things we can fix [*1*], but more importantly, build structure
of many project may require you to go up to the top to build the
whole thing, so being able to get a relative path to the top when
you are deep inside is a necessity.
How is the project built? When I type `make` inside Documentation/, I
want documentation to be built. When I want a toplevel-build, I use a
custom git-make function (which does a cd before calling make).
[Footnote]
*1* "blame" is an oddball (and I suspect the recent log -Ln,m:path
may share the same) in that it really wants a concret path, not
a pathspec, so you cannot even say
cd Documentation; git blame :/Makefile
*scratches head*
cd Documentation; git blame ../Makefile
Isn't this how pathspecs are specified everywhere?
cd Documentation; git log ../Makefile
cd Documentation; git log -L0,10:../Makefile
What is the difference between "concrete path" and "pathspec"?