从Clojure调用SVNKit

时间:2013-04-14 03:22:47

标签: clojure svnkit

我正在尝试关注this tutorial使用svnkit,但是从clojure开始。我的代码是:

(defn svntest [ url ]
  (. DAVRepositoryFactory setup)
  (try (let [ repository (. SVNRepositoryFactory create 
           (. SVNURL parseURIEncoded url))]    
           (.iterator 
              (. repository getDir "svnkit" -1 nil (cast Collection nil)))
         )
    (catch SVNException svne
      (println (str "err: " (.getMessage svne)))
      )
  )
)
(svntest "http://svn.svnkit.com/repos/svnkit/trunk")

但是,我的getDir调用似乎不起作用 - 我收到IllegalArgumentException,因为此getDir返回的是long而不是集合。

我做错了什么?我是否需要以不同的方式转换参数以获取此重载方法的另一个版本?

1 个答案:

答案 0 :(得分:1)

要修复此类型,请将let语句中的集合提示为:

(let [^Collection coll nil
      repository (. SVNRepositoryFactory create 
                   (. SVNURL parseURIEncoded url))]
        (.iterator
          (. repository getDir "svnkit" -1 nil coll)))
; ...