diff --git a/server/backend/sqlite/error.go b/server/backend/sqlite/error.go index 1422697a9ba60dd105fb31af5ed2f0d68c047f04..8476f640ccd3fb0728e5521e1e2db2d1ec268ce0 100644 --- a/server/backend/sqlite/error.go +++ b/server/backend/sqlite/error.go @@ -14,4 +14,7 @@ var ( // ErrRepoNotExist is returned when a repository does not exist. ErrRepoNotExist = fmt.Errorf("repository does not exist") + + // ErrRepoExist is returned when a repository already exists. + ErrRepoExist = fmt.Errorf("repository already exists") ) diff --git a/server/backend/sqlite/sqlite.go b/server/backend/sqlite/sqlite.go index 25d396a352f1911949db410f96182acf5351888b..d45a9f4052394438b56ac5719afb3e15c25d0eb8 100644 --- a/server/backend/sqlite/sqlite.go +++ b/server/backend/sqlite/sqlite.go @@ -184,6 +184,10 @@ func (d *SqliteBackend) ImportRepository(name string, remote string, opts backen repo := name + ".git" rp := filepath.Join(d.reposPath(), repo) + if _, err := os.Stat(rp); err == nil || os.IsExist(err) { + return nil, ErrRepoExist + } + copts := git.CloneOptions{ Bare: true, Mirror: opts.Mirror,