gitpathpost-commit

how to get project path in hook script post-commit?(git)


I want to call a Script that is located in the repository.

I could of course do the following:

#!/bin/sh
../../myscript.sh

but I think thats not nice ;)

so how do I get the path of my project within the post-commit script?


Solution

  • When you're dealing with a non-bare repository, the post-commit1 hook is run with a current working directory of the working tree of the repository. So, you don't need the ../../.

    If you want the full path of the script, you could always do:

    SCRIPT=$(readlink -nf myscript.sh)
    

    ... or you could use git rev-parse --show-toplevel to get an absolute path to the working directory:

    SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh
    

    1 ... but note that this is not true of some other hooks, e.g. in a post-receive hook in a non-bare repository, the current working directory is the .git directory.