 ;; Return a newest-first sequence of revision numbers in which the object
 ;; changed.
 
-(defn get-revlist [opts object]
-  (let [logstream (java.io.ByteArrayInputStream. (.getBytes (log opts object)))]
+(defn get-revlist [opts show object]
+  (let [x (java.io.ByteArrayInputStream. (.getBytes (log opts show object)))]
     (for [e (try
-              (xml-seq (parse logstream))
+              (xml-seq (parse x))
               (catch Exception e (errmsg)))
           :when (seq (:attrs e))]
     (:revision (:attrs e)))))


;; NEED NEW COMMENT HERE

(defn svndiff [r1 r2 filename object]
  (let [object (baseobject object)
        r (re-pattern (str "^.*/" filename "$"))
        p (if (uri? object)
            (if (re-matches r object) object (str object "/" filename))
            filename)
        v (vpaths r1 r2 p object)]
    (sh "svn" "diff" (first v) (second v))))

;; Is path a uri? If it contains :// assume it is.


;; vector of the names of files where the filter term appears on a changed line.
;; If no filter term is given, a changed file automatically matches.

(defn matching-files [r1 r2 object filt show]
  (let [blocks (rest (split (:out (diff r1 r2 object show)) #"^Index: |\nIndex: "))]
    (remove nil?
            (into []
                  (for [block blocks]
