Commit dc41ffa309fee7697693cfaea42486707d98f5f0

Authored by Dmitriy Zaporozhets
2 parents 76842ddb 3a8ee229

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