From 62f21ff3ed1b85a1d3a1eab73da354e4f6e8794a Mon Sep 17 00:00:00 2001
From: Unknwon <joe2010xtmf@163.com>
Date: Tue, 16 Sep 2014 11:29:53 -0400
Subject: [PATCH] Work on #476

---
 models/repo.go             | 2 +-
 modules/git/repo_commit.go | 2 +-
 modules/git/version.go     | 6 +++++-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/models/repo.go b/models/repo.go
index a8e53dbcd..2e1627043 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -100,7 +100,7 @@ func NewRepoContext() {
 	if err != nil {
 		log.Fatal(4, "Fail to parse required Git version: %v", err)
 	}
-	if ver.Compare(reqVer) == -1 {
+	if ver.LessThan(reqVer) {
 		log.Fatal(4, "Gogs requires Git version greater or equal to 1.7.1")
 	}
 
diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go
index c9258927b..cd0181c48 100644
--- a/modules/git/repo_commit.go
+++ b/modules/git/repo_commit.go
@@ -137,7 +137,7 @@ func (repo *Repository) GetCommit(commitId string) (*Commit, error) {
 }
 
 func (repo *Repository) commitsCount(id sha1) (int, error) {
-	if gitVer.Compare(MustParseVersion("1.8.0")) == -1 {
+	if gitVer.LessThan(MustParseVersion("1.8.0")) {
 		stdout, stderr, err := com.ExecCmdDirBytes(repo.Path, "git", "log", "--pretty=format:''", id.String())
 		if err != nil {
 			return 0, errors.New(string(stderr))
diff --git a/modules/git/version.go b/modules/git/version.go
index 653503c03..546397aa6 100644
--- a/modules/git/version.go
+++ b/modules/git/version.go
@@ -47,7 +47,7 @@ func MustParseVersion(verStr string) *Version {
 }
 
 // Compare compares two versions,
-// it returns 1 if original is greater, 1 if original is smaller, 0 if equal.
+// it returns 1 if original is greater, -1 if original is smaller, 0 if equal.
 func (v *Version) Compare(that *Version) int {
 	if v.Major > that.Major {
 		return 1
@@ -70,6 +70,10 @@ func (v *Version) Compare(that *Version) int {
 	return 0
 }
 
+func (v *Version) LessThan(that *Version) bool {
+	return v.Compare(that) < 0
+}
+
 // GetVersion returns current Git version installed.
 func GetVersion() (*Version, error) {
 	if gitVer != nil {