 
 (defn tag
   [name message]
-  (assert @repo-dir "This does not appear to be a git repo.")
-  (jgit/with-repo @repo-dir
-    (.. repo tag (setName name) (setMessage message) call)))
+  (with-repo (.. repo tag (setName name) (setMessage message) call)))
 

           (loop [d (.getCanonicalFile (io/file "."))]
             (when d (or (repo d) (recur (.getParentFile d))))))))

(defn status
  []
  (assert @repo-dir "This does not appear to be a git repo.")
  (jgit/with-repo @repo-dir (jgit/git-status repo)))

(defn branch-current
  []
  (jgit/with-repo @repo-dir
    (jgit/git-branch-current repo)))

(defn clean?
  []


(defn last-commit
  []
  (with-repo (->> (jgit/git-log repo) first .getName)))

(defn ls-files
  [& {:keys [ref untracked]}]
  (with-repo
    (let [r      (.getRepository repo)
          walk   (RevWalk. r)
          head   (.getRef r (or ref "HEAD"))
