From: Ramkumar Ramachandra Date: Wed, 29 May 2013 20:19:17 GMT Subject: Re: [git-users] Highlevel (but simple to implement) commands provided by default for git Message-ID: In-Reply-To: <7v38t5sg7k.fsf@alter.siamese.dyndns.org> Junio C Hamano wrote: >> 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"?