Commit dc41ffa309fee7697693cfaea42486707d98f5f0
Exists in
master
and in
4 other branches
Merge pull request #3868 from hiroponz/fix_check_git_version
Fix check git version.
Showing
1 changed file
with
22 additions
and
4 deletions
Show diff stats
lib/tasks/gitlab/check.rake
@@ -666,14 +666,32 @@ namespace :gitlab do | @@ -666,14 +666,32 @@ namespace :gitlab do | ||
666 | end | 666 | end |
667 | 667 | ||
668 | def check_git_version | 668 | def check_git_version |
669 | - print "Git version >= 1.7.10 ? ... " | 669 | + required_version_major = 1 |
670 | + required_version_minor = 7 | ||
671 | + required_version_patch = 10 | ||
670 | 672 | ||
671 | - if run_and_match("git --version", /git version 1.7.10.\d/) | ||
672 | - puts "yes".green | 673 | + required_version = "%d.%d.%d" %[required_version_major, required_version_minor, required_version_patch] |
674 | + | ||
675 | + print "Git version >= #{required_version} ? ... " | ||
676 | + | ||
677 | + if m = run_and_match("git --version", /git version ((\d+)\.(\d+)\.(\d+))/) | ||
678 | + current_version = m[1] | ||
679 | + major = m[2].to_i | ||
680 | + minor = m[3].to_i | ||
681 | + patch = m[4].to_i | ||
682 | + unless major <= required_version_major && minor <= required_version_minor && patch < required_version_patch | ||
683 | + satisfying_git_version = true | ||
684 | + end | ||
685 | + else | ||
686 | + current_version = "Unknown" | ||
687 | + end | ||
688 | + | ||
689 | + if satisfying_git_version | ||
690 | + puts "yes".green | ||
673 | else | 691 | else |
674 | puts "no".red | 692 | puts "no".red |
675 | try_fixing_it( | 693 | try_fixing_it( |
676 | - "Update your git to a version >= 1.7.10" | 694 | + "Update your git to a version >= #{required_version} from #{current_version}" |
677 | ) | 695 | ) |
678 | fix_and_rerun | 696 | fix_and_rerun |
679 | end | 697 | end |