“Currently, it is Subversion's bindings that are the most complete. ”

这句话是我在SVN的手册上看到的,由于SVN是使用C进行开发的,我看到半道的时候,怕库没有进行别的语言的banding,所以一直细心留意。结果在第7章忽然发现这句话,感到非常的高兴。虽然SVN对java,perl和python分别做了绑定,但是绑定程度是不一样的,java的代码量最大,不知道是什么原因,ruby正在计划中,不过banding目录中已经有他的子目录了,还有一个是COM,不知道是不是微软的那个玩意。

看来使用python进行客户端改写还是有希望得了,原来以为要对C库进行python的wapper,现在看来,只要把源代码下面的banding目录下面的python代码搞定就可以了。附python的DEMO一个:
A Simple Script to Check Out a Working Copy.
#!/usr/bin/env
import sys
from svn import util, _util, _client

def usage():
  print "Usage: " + sys.argv[0] + " URL PATH\n"
  sys.exit(0)

def run(url, path):
  # Initialize APR and get a POOL.
  _util.apr_initialize()
  pool = util.svn_pool_create(None)

  # Checkout the HEAD of URL into PATH (silently)
  _client.svn_client_checkout(None, None, url, path, -1, 1, None, pool)

  # Cleanup our POOL, and shut down APR.
  util.svn_pool_destroy(pool)
  _util.apr_terminate()

if __name__ == '__main__':
  if len(sys.argv) != 3:
    usage()
  run(sys.argv[1], sys.argv[2])