threads / discuss / 14189

Ramifications of a git-sh-setup outside the PATH

Subject: Ramifications of a git-sh-setup outside the PATH

## tl;dr

2 messages between Jun 27, 2008 and Jun 28, 2008.

replies: 1people: 2as markdown or json

Jonathan Nieder· Jun 27, 2008, 19:00 UTC · lore
Hi gitsters,

I noticed in the release notes to Git 1.6.0 that dashed-form commands are moving to a libexecdir outside the PATH. I have been using Git with nd/dashless applied for about a month, and it does work well (thanks!). There was one little glitch: to use hg-fast-export.sh from fast-export.git (of repo.or.cz), I had to put git-sh-setup in the PATH.

I wanted to just change the ". git-sh-setup" line to ". git sh-setup", but of course that will not work. Am I missing something?

hg-fast-export uses git-sh-setup to handle --help, to provide the cd_to_toplevel function, and to set GIT_DIR. It would not take much work to avoid using git-sh-setup, although for my needs it was easier to put git-sh-setup in the PATH. But really, the use of git-sh-setup does not seem strange to me at all. Is use of git-sh-setup in scripts outside Git core discouraged?

The location of git-sh-setup was discussed before in the thread <http://thread.gmane.org/gmane.comp.version-control.git/33708>. Thanks for your time, and thank you for Git!

Sincerely, Jonathan

Alex Riesen· Jun 28, 2008, 12:01 UTC · re: Jonathan Nieder · lore

Re: Ramifications of a git-sh-setup outside the PATH

Jonathan Nieder, Fri, Jun 27, 2008 21:00:27 +0200:
Show 10 quoted lines
> Hi gitsters,
> 
> I noticed in the release notes to Git 1.6.0 that dashed-form commands
> are moving to a libexecdir outside the PATH. I have been using Git
> with nd/dashless applied for about a month, and it does work well
> (thanks!). There was one little glitch: to use hg-fast-export.sh from
> fast-export.git (of repo.or.cz), I had to put git-sh-setup in the PATH.
> 
> I wanted to just change the ". git-sh-setup" line to ". git sh-setup",
> but of course that will not work. Am I missing something?
Try
    . "$(git --exec-path)/git-sh-setup"

"git-sh-setup" is not a command, but a Bourne Shell script you can use in your scripts by including it. So ". git sh-setup" just tries to _include_ file "git" (and will try $PATH and current directory) with positional argument "sh-setup" (see man 1 bash, for example).

← back to recent threads