Commit 3a8ee2291a7f8c3a504e532beedc2548dc4212e8
1 parent
78ff99a7
Exists in
master
and in
4 other branches
Fix check git version.
Checking is "yes" only if git version equals "1.7.10" exactly.
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 | ... | ... |