   [meta branch]
   (> (count ((:branches meta) branch)) 1))
 
+
 (defn merge-necessary?
   "Determines whether branch-head is ancestor."
   [cut branch-head]

                (set/union source-heads target-heads)
                value)))

(defn merge-heads
  "Merge source and target heads into source branch with value as commit."
  ([author schema branch source-meta source-heads target-meta target-heads value]
     (merge-lcas author schema branch source-meta source-heads target-heads value
                 (lowest-common-ancestors (:causal-order source-meta)
                                          source-heads
                                          (:causal-order target-meta)
                                          target-heads))))


(defn pull
  "Pull all commits into branch from remote-tip (only its ancestors)."
  [meta branch remote-meta remote-tip]
  (let [branch-heads ((:branches meta) branch)
        lcas (lowest-common-ancestors (:causal-order meta) branch-heads
                                      (:causal-order remote-meta) #{remote-tip})]
    (pull-lcas meta branch remote-tip lcas)))


(defn merge-lcas
