* [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued
@ 2012-03-22 9:06 Dominique Quatravaux
2012-03-22 9:43 ` Thomas Rast
2012-03-22 9:46 ` Andreas Schwab
0 siblings, 2 replies; 4+ messages in thread
From: Dominique Quatravaux @ 2012-03-22 9:06 UTC (permalink / raw)
To: git; +Cc: Dominique Quatravaux
Under a setting of (eg) GIT_EXEC_PATH=/home/joe/bin:/usr/lib/git-core,
constructs such as
. "$(git --exec-path)"/git-sh-setup
do not work. The proper way is
. "$(PATH="$(git --exec-path)" type -p git-sh-setup)"
---
Documentation/git-mergetool--lib.txt | 3 ++-
Documentation/git-parse-remote.txt | 2 +-
Documentation/git-sh-i18n.txt | 2 +-
Documentation/git-sh-setup.txt | 2 +-
contrib/diffall/git-diffall | 4 ++--
git-mergetool--lib.sh | 2 +-
6 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/Documentation/git-mergetool--lib.txt b/Documentation/git-mergetool--lib.txt
index f98a41b..c7188d3 100644
--- a/Documentation/git-mergetool--lib.txt
+++ b/Documentation/git-mergetool--lib.txt
@@ -8,7 +8,8 @@ git-mergetool--lib - Common git merge tool shell scriptlets
SYNOPSIS
--------
[verse]
-'TOOL_MODE=(diff|merge) . "$(git --exec-path)/git-mergetool{litdd}lib"'
+'TOOL_MODE=(diff|merge) \
+ . "$(PATH="$(git --exec-path)" type -P git-mergetool{litdd}lib)"'
DESCRIPTION
-----------
diff --git a/Documentation/git-parse-remote.txt b/Documentation/git-parse-remote.txt
index a45ea1e..c17d7b8 100644
--- a/Documentation/git-parse-remote.txt
+++ b/Documentation/git-parse-remote.txt
@@ -9,7 +9,7 @@ git-parse-remote - Routines to help parsing remote repository access parameters
SYNOPSIS
--------
[verse]
-'. "$(git --exec-path)/git-parse-remote"'
+'. "$(PATH="$(git --exec-path)" type -P git-parse-remote)"'
DESCRIPTION
-----------
diff --git a/Documentation/git-sh-i18n.txt b/Documentation/git-sh-i18n.txt
index 60cf49c..f74820c 100644
--- a/Documentation/git-sh-i18n.txt
+++ b/Documentation/git-sh-i18n.txt
@@ -8,7 +8,7 @@ git-sh-i18n - Git's i18n setup code for shell scripts
SYNOPSIS
--------
[verse]
-'. "$(git --exec-path)/git-sh-i18n"'
+'. "$(PATH="$(git --exec-path)" type -P git-sh-i18n)"'
DESCRIPTION
-----------
diff --git a/Documentation/git-sh-setup.txt b/Documentation/git-sh-setup.txt
index 5e5f1c8..44c6aa9 100644
--- a/Documentation/git-sh-setup.txt
+++ b/Documentation/git-sh-setup.txt
@@ -8,7 +8,7 @@ git-sh-setup - Common git shell script setup code
SYNOPSIS
--------
[verse]
-'. "$(git --exec-path)/git-sh-setup"'
+'. "$(PATH="$(git --exec-path)" type -P git-sh-setup)"'
DESCRIPTION
-----------
diff --git a/contrib/diffall/git-diffall b/contrib/diffall/git-diffall
index 84f2b65..451ca98 100755
--- a/contrib/diffall/git-diffall
+++ b/contrib/diffall/git-diffall
@@ -22,10 +22,10 @@ USAGE='[--cached] [--copy-back] [-x|--extcmd=<command>] <commit>{0,2} [-- <path>
'
SUBDIRECTORY_OK=1
-. "$(git --exec-path)/git-sh-setup"
+PATH="$(PATH="$(git --exec-path)" type -P git-sh-setup)"
TOOL_MODE=diff
-. "$(git --exec-path)/git-mergetool--lib"
+. "$(PATH="$(git --exec-path)" type -P git-mergetool--lib)"
merge_tool="$(get_merge_tool)"
if test -z "$merge_tool"
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index ed630b2..73d8510 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -52,7 +52,7 @@ setup_tool () {
tool="$1"
;;
esac
- mergetools="$(git --exec-path)/mergetools"
+ mergetools="$(PATH="$(git --exec-path)" type -P mergetools)"
# Load the default definitions
. "$mergetools/defaults"
--
1.7.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued
2012-03-22 9:06 [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued Dominique Quatravaux
@ 2012-03-22 9:43 ` Thomas Rast
2012-03-22 10:24 ` Dominique Quatravaux
2012-03-22 9:46 ` Andreas Schwab
1 sibling, 1 reply; 4+ messages in thread
From: Thomas Rast @ 2012-03-22 9:43 UTC (permalink / raw)
To: Dominique Quatravaux; +Cc: git
Dominique Quatravaux <domq@google.com> writes:
> Under a setting of (eg) GIT_EXEC_PATH=/home/joe/bin:/usr/lib/git-core,
> constructs such as
>
> . "$(git --exec-path)"/git-sh-setup
>
> do not work. The proper way is
>
> . "$(PATH="$(git --exec-path)" type -p git-sh-setup)"
NAK. The documented(!) way of loading git-sh-setup is
. "$(git --exec-path)/git-sh-setup"
and we can't break that. I don't know where you are getting your
multivalued GIT_EXEC_PATH from, but there are other places in the code
that assume a single path, too. For example, the callchain (irrelevant
stuff snipped)
void setup_path(void)
{
add_path(&new_path, git_exec_path());
}
static void add_path(struct strbuf *out, const char *path)
{
if (path && *path) {
if (is_absolute_path(path))
strbuf_addstr(out, path);
else
strbuf_addstr(out, absolute_path(path));
strbuf_addch(out, PATH_SEP);
}
}
makes no sense at is_absolute_path(path) if path is multivalued.
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued
2012-03-22 9:43 ` Thomas Rast
@ 2012-03-22 10:24 ` Dominique Quatravaux
0 siblings, 0 replies; 4+ messages in thread
From: Dominique Quatravaux @ 2012-03-22 10:24 UTC (permalink / raw)
To: Thomas Rast; +Cc: git
On Thu, Mar 22, 2012 at 10:43 AM, Thomas Rast <trast@student.ethz.ch> wrote:
> I don't know where you are getting your
> multivalued GIT_EXEC_PATH from,
Well it used to work for me before, apparently not by design... Too bad.
--
Dominique Quatravaux
+41 79 609 40 72
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued
2012-03-22 9:06 [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued Dominique Quatravaux
2012-03-22 9:43 ` Thomas Rast
@ 2012-03-22 9:46 ` Andreas Schwab
1 sibling, 0 replies; 4+ messages in thread
From: Andreas Schwab @ 2012-03-22 9:46 UTC (permalink / raw)
To: Dominique Quatravaux; +Cc: git
Dominique Quatravaux <domq@google.com> writes:
> Under a setting of (eg) GIT_EXEC_PATH=/home/joe/bin:/usr/lib/git-core,
> constructs such as
>
> . "$(git --exec-path)"/git-sh-setup
>
> do not work. The proper way is
>
> . "$(PATH="$(git --exec-path)" type -p git-sh-setup)"
type doesn't take any options in POSIX, and -P is bash-only.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-03-22 10:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-22 9:06 [PATCH] Locate git helpers with type -P, for when git --exec-path is multivalued Dominique Quatravaux
2012-03-22 9:43 ` Thomas Rast
2012-03-22 10:24 ` Dominique Quatravaux
2012-03-22 9:46 ` Andreas Schwab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).