diff options
Diffstat (limited to 'git-cvsserver.perl')
-rwxr-xr-x | git-cvsserver.perl | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/git-cvsserver.perl b/git-cvsserver.perl index 9da27231f..b45079246 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -139,8 +139,21 @@ sub req_Root $state->{CVSROOT} = $data; $ENV{GIT_DIR} = $state->{CVSROOT} . "/"; + unless (-d $ENV{GIT_DIR} && -e $ENV{GIT_DIR}.'HEAD') { + print "E $ENV{GIT_DIR} does not seem to be a valid GIT repository\n"; + print "E \n"; + print "error 1 $ENV{GIT_DIR} is not a valid repository\n"; + return 0; + } - foreach my $line ( `git-var -l` ) + my @gitvars = `git-var -l`; + if ($?) { + print "E problems executing git-var on the server -- this is not a git repository or the PATH is not set correcly.\n"; + print "E \n"; + print "error 1 - problem executing git-var\n"; + return 0; + } + foreach my $line ( @gitvars ) { next unless ( $line =~ /^(.*?)\.(.*?)=(.*)$/ ); $cfg->{$1}{$2} = $3; |