This patch uses "git rev-parse --is-inside-work-tree" to determine
whether a "--work-tree=.." should be added to the "git diff".
Why ".."? What prevents you from "cd .git/refs/heads"?
It was my impression that --work-tree=.. was relative to the GIT_DIR. My
tests seem to confirm that. Within the git work tree I do:
echo "test">>COPYING
then
cd .git/refs/heads
git --work=tree=.. diff
and that produces a diff of COPYING showing the new line.
("man git" confused me about how WORK_TREE was supposed to work)
Your "is-inside-work-tree" might be a good change, but if you were to
spend a letter to notify the users, "Warning: You are inside GIT_DIR! This
is something unusual, proceed with caution." is a lot more important
notice to give them than "You seem to have unstaged changes" notice.
Ok, so if "is-inside-git-dir" then send a special "!" flag (and no
dirtyState flags)? Does that seem reasonable?
Additionally, is it a good idea to echo the branch name when inside the
git dir? That is, what does it "mean" to be on "master" when you're
inside .git?
You have at least three possible states:
* You are not in git repository at all;
* You are somewhere in $GIT_DIR, perhaps in a bare repository, perhaps a
repository with a work tree.
* You are inside a work tree.
It seems like (psuedocode)...
if git rev-parse --is-inside-git-dir; then
use '!' flag to indicate caution
elif git rev-parse --is-inside-work-tree; then
proceed as before (with '*' and '+' flags)
else
do nothing
I think that handles those cases. No?
Thanks --
--Ted
--
Ted Pavlic <ted@xxxxxxxxxxxxx>
Please visit my ALS association page:
http://web.alsa.org/goto/tedpavlic
My family appreciates your support in the fight to defeat ALS.
--
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