From ae1650824cd50890837d04b310d8ab0f54d46912 Mon Sep 17 00:00:00 2001
From: Sina Siadat <siadat@gmail.com>
Date: Mon, 7 Sep 2015 01:04:35 +0430
Subject: Set IsBare true if migrated repo is empty.

Executes `git log -1` and sets IsBare to true if stderr contains this
string:

  fatal: bad default revision 'HEAD'
---
 models/repo.go | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'models')

diff --git a/models/repo.go b/models/repo.go
index 2835b6f9e3..06c97baf24 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -470,6 +470,12 @@ func MigrateRepository(u *User, name, desc string, private, mirror bool, url str
 		return repo, fmt.Errorf("create update hook: %v", err)
 	}
 
+	// Check if repository is empty.
+	_, stderr, err = com.ExecCmdDir(repoPath, "git", "log", "-1")
+	if err != nil && strings.Contains(stderr, "fatal: bad default revision 'HEAD'") {
+		repo.IsBare = true
+	}
+
 	// Check if repository has master branch, if so set it to default branch.
 	gitRepo, err := git.OpenRepository(repoPath)
 	if err != nil {
-- 
cgit v1.2.3