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 | 666 | end |
667 | 667 | |
668 | 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 | 691 | else |
674 | 692 | puts "no".red |
675 | 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 | 696 | fix_and_rerun |
679 | 697 | end | ... | ... |