Diff
1diff --git a/server/backend/repo.go b/server/backend/repo.go
2index 119de3c92d4196267760222487b21545500d04ff..c9c6a7257e2674909cf7d8e44811a956d3562129 100644
3--- a/server/backend/repo.go
4+++ b/server/backend/repo.go
5@@ -199,9 +199,17 @@ func (d *Backend) DeleteRepository(ctx context.Context, name string) error {
6 // Delete repo from cache
7 defer d.cache.Delete(name)
8
9- repom, err := d.store.GetRepoByName(ctx, tx, name)
10- if err != nil {
11- return db.WrapError(err)
12+ repom, dberr := d.store.GetRepoByName(ctx, tx, name)
13+ _, ferr := os.Stat(rp)
14+ if dberr != nil && ferr != nil {
15+ return proto.ErrRepoNotFound
16+ }
17+
18+ // If the repo is not in the database but the directory exists, remove it
19+ if dberr != nil && ferr == nil {
20+ return os.RemoveAll(rp)
21+ } else if dberr != nil {
22+ return db.WrapError(dberr)
23 }
24
25 repoID := strconv.FormatInt(repom.ID, 10)