about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--internal/vcs/repository.go20
1 files changed, 19 insertions, 1 deletions
diff --git a/internal/vcs/repository.go b/internal/vcs/repository.go
index 8ee08b2..625fbd2 100644
--- a/internal/vcs/repository.go
+++ b/internal/vcs/repository.go
@@ -81,5 +81,23 @@ func (r *Repository) Update(cfg *Config) (bool, error) {
 	}
 	log.Info("updated to", "rev", head.Hash().String())
 
-	return true, nil
+	return true, r.Clean(wt)
+}
+
+func (r *Repository) Clean(wt *git.Worktree) error {
+	st, err := wt.Status()
+	if err != nil {
+		return err
+	}
+
+	if !st.IsClean() {
+		err = wt.Clean(&git.CleanOptions{
+			Dir: true,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	return nil
 }