           (pldb/db-fact r-commit-path sha dir-path)))))
 
 (defn build-shabam
-  [{:keys [shabam pldb]} tips]
+  [{:keys [shabam pldb] :as db} tips]
   (loop [shabam shabam, stack (vec (sort-by str tips))]
     (if-let [frame (peek stack)]
       (if (vector? frame)

(defn read-git-db
  [gitdir]
  (let [file (git-db-file gitdir)
        [header & [shabam & reldata]] (-> file
                               io/input-stream
                               java.util.zip.GZIPInputStream.
                               (fress/read :handlers sha/read-handlers))]
    (if (= header voomdb-header)
      {:shabam (update-in shabam [:bitmaps] vec)
       :pldb
       , (vdb/from-reldata
          [r-branch r-commit r-commit-parent r-commit-path r-proj-path r-proj]

                            gitdir (vals new-branches) (vals old-branches)))]
            (->/assoc :pldb (add-commit-facts gitdir commit)))

          (vary-meta assoc ::dirty true)))
      (build-shabam (vals new-branches)))))

(def voomdb-header "voom-db-9")

(defn ^File git-db-file
  [gitdir]
