Git – how can git post-receive hook get name of repo it is running on

git

I have a git post receive hook that will trigger a build on my build system.
I need to create a string of the form "$repo-name + $branch" in the hook script.

I can parse the branch, but how can I get the repository name from git?

Thanks!

Best Solution

The "repository name" isn't a well-defined idea in git, I think. Perhaps what would be most useful is to return whatever.git in the case of a bare repository or whatever in the case of a repository with a working tree. I've tested that this bit of Bourne shell deals with both cases properly from within a post-receive hook:

if [ $(git rev-parse --is-bare-repository) = true ]
then
    REPOSITORY_BASENAME=$(basename "$PWD") 
else
    REPOSITORY_BASENAME=$(basename $(readlink -nf "$PWD"/..))
fi
echo REPOSITORY_BASENAME is $REPOSITORY_BASENAME

Update: if you want to remove the .git extension in the bare repository case, you could add a line to the first case to strip it off:

    REPOSITORY_BASENAME=$(basename "$PWD")
    REPOSITORY_BASENAME=${REPOSITORY_BASENAME%.git}