 
 (def commit-list jgit.q/rev-list)
 
-(defn- complete-id [ent side reader]
-  (let [id (.getId ent side)]
+(defn- complete-id [^DiffEntry entry side ^ObjectReader reader]
+  (let [id (.getId entry side)]
     (if (.isComplete id)
       id
       (when-first [obj-id (.resolve reader id)]

      (.setNoCheckout true))
    (.call)))

(defn load-repo [url]
  (let [path (data-dir url)]
    (if (.exists (io/as-file path))
      (doto (jgit.p/load-repo path)

      (finally 
        (.close stream)))))

(defn- open-diff [^DiffEntry entry side ^ObjectReader reader]
  (let [mode (.getMode entry side)]
    (when (and (not= FileMode/MISSING mode)
               (= Constants/OBJ_BLOB (.getObjectType mode)))
      (let [id (complete-id entry side reader)
            path (.getPath entry side)]
        (load-obj id path reader)))))

(defn- parse-diff-changes [^DiffEntry entry ^DiffAlgorithm alg ^ObjectReader reader]
  (when-not (or (= FileMode/GITLINK (.getOldMode entry))
                (= FileMode/GITLINK (.getNewMode entry))
                (nil? (.getOldId entry))
