Ticket #2160 (new bug)

Opened 3 years ago

Last modified 3 years ago

.git doesn't imply git executable

Reported by: coke Owned by:
Priority: normal Milestone:
Component: build Version: master
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

On windows, I have "git bash" and "visual studio command shell", and they're separate. When I run 'nmake smoke' (et al.), it's complaining that

'git' is not recognized as an internal....

So, while -d .git is an easy check, we can't assume that is sufficient to be able to run git.

Change History

Changed 3 years ago by jkeenan

Some data:

$ find ./lib/Parrot -type f ! -path '*/.git*' | xargs grep -n '\.git'
./lib/Parrot/Distribution.pm:221:    my @ignore_dirs = qw{ .git };
./lib/Parrot/Git/Describe.pm:31:    if ( -d '.git') {
./lib/Parrot/Harness/Smoke.pm:165:    # check for local-modifications if -d .git and query to continue
./lib/Parrot/Harness/Smoke.pm:166:    if (-d ".git") {
./lib/Parrot/Manifest.pm:72:        next if $filename =~ m[/\.git|^blib|^ports];
./lib/Parrot/Manifest.pm:366:    my $gitignore = `cat .gitignore| grep -v '^#'`;
./lib/Parrot/Manifest.pm:373:         # .gitignore has different regexen than MANIFEST
./lib/Parrot/Manifest.pm:398:# Ignore the .git directory
./lib/Parrot/Manifest.pm:399:\\B\\.git\\b
./lib/Parrot/SHA1.pm:29:    if ( -d '.git') {
./lib/Parrot/Test.pm:507:            # Let 'make clean' and '.gitignore' take care of them.
./lib/Parrot/Test.pm:711:        # make cleanup and .gitignore more simple

So it appears that the first (though not necessarily the only ) places we have to look at are:

./lib/Parrot/Git/Describe.pm
./lib/Parrot/Harness/Smoke.pm
./lib/Parrot/SHA1.pm

Changed 3 years ago by coke

and while those using "git bash" can install git so it's available in
the path, that doesn't help, e.g. tortoisegit users. (I think)

Note: See TracTickets for help on using tickets.