On Thu, Apr 12, 2012 at 10:53 PM, David Aguilar [off-list ref] wrote:
The issue is that this does not properly handle shell characters, IFS, etc.
I think a simple solution would be to use git diff --exit-code --quiet here.
e.g.
my $rc = system('git', 'diff', '--exit-code', '--quiet', @ARGV);
That avoids the shell and properly handles shell meta-characters, IFS, etc.
The problem is that I need the output of 'git diff' to drive the rest
of the script. Getting STDOUT from a system() call is difficult, so I
switched to backticks. Obviously I missed the regression.
The best solution seems to be to find a way to make
'Git->repository->command*' to work with $GIT_DIR and $GIT_WORK_TREE.
I will send v13 with this change soon.