Re: [PATCH 3/3] completion: Prevents GIT_PS1_DIRTYSTATE from breaking when CWD is .git

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux