         rtn (apply sh "git" all-args)]
     (when-not (zero? (:exit rtn))
       (throw (ex-info "git error" (assoc rtn :git all-args))))
-    rtn))
+    (assoc rtn :lines (when (not= "\n" (:out rtn))
+                        (re-seq #"(?m)^.*$" (:out rtn))))))
 
 ;; === git sha-based versions ===
 

  [gitdir]
  (->
   (git {:gitdir gitdir} "ls-files" "project.clj" "**/project.clj")
   :out
   s/split-lines))

(defn box-add
  [proj & args]


(defn find-project-files
  [^File d]
  (let [{:keys [lines]} (git {:gitdir d} "ls-files" "project.clj" "**/project.clj")]
    (map #(str (.getParent d) "/" %) lines)))

(defn contains-sha? [d sha]
  (prn "contains-sha?" d sha)
