From 6f8e388b5530e85f141ea3aa345b1c6842fbe1f5 Mon Sep 17 00:00:00 2001 From: Unknwon <u@gogs.io> Date: Sun, 26 Jul 2015 19:22:17 +0800 Subject: fix #1169 - prevent create reop on existed path --- models/repo.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 35f63e12..f339f173 100644 --- a/models/repo.go +++ b/models/repo.go @@ -423,13 +423,18 @@ func createUpdateHook(repoPath string) error { // InitRepository initializes README and .gitignore if needed. func initRepository(e Engine, repoPath string, u *User, repo *Repository, initReadme bool, repoLang, license string) error { + // Somehow the directory could exist. + if com.IsExist(repoPath) { + return fmt.Errorf("initRepository: path already exists: %s", repoPath) + } + // Init bare new repository. os.MkdirAll(repoPath, os.ModePerm) _, stderr, err := process.ExecDir(-1, repoPath, fmt.Sprintf("initRepository(git init --bare): %s", repoPath), "git", "init", "--bare") if err != nil { - return errors.New("git init --bare: " + stderr) + return fmt.Errorf("git init --bare: %s", err) } if err := createUpdateHook(repoPath); err != nil { -- cgit v1.2.3