Hi together,
I wrote some shell scripts that do sth with my git repositories. I place my scripts in my ~/bin folder (not in the repo). So the first step in my scripts is always to check whether they get called from whithin a git repo and bail out if they don't.
I do this like so:
---------------------
if [ "$(git rev-parse --is-inside-work-tree)" = "true" ] # (1)
then
here=$(pwd)
cdup=$(git rev-parse --show-cdup); # (2a)
cdup=${cdup:-"."} # (2b)
cd $cdup # (2c)[do sth useful from the topdir]
cd $here
exit 0;
else
echo "Not inside a git working tree."
exit 1;
fi
---------------------I have two questions:
1. Wouldn't it be useful, if "git rev-parse" (1) had an option "-q" that simply indicates whether "--is-inside-work-tree" is true by means of the return code? Actually it has an option "-q" but that doesn't work with "--is-inside-work-tree".
2. Wouldn't it be useful, if "git rev-parse --show-cdup" (2a) would return a dot "." instead of nothing if we are already in the topdir? That would make the steps (2a), (2b), (2c) to a simple "cd $(git rev-parse --show-cdup)".
(For those who aren't familiar with shell programming: (2b) means: 'if $cdup is empty, then set it to "."'.)
I know that 2. is a problem, because "git rev-parse" is a plumbing tool. People likely rely on "--show-dup" to return an empty string. But what about 1.? I think there's no harm if "-q" would work for "--is-inside-work-tree" as well.
BTW: I'm sorry that all my sentences start with "I". ;-)
What do you think? If appreciated, I'd like to work on a patch for (1).
Cheers,
Dirk