如何使用Subversion Ctypes Python绑定?

4 投票
3 回答
1552 浏览
提问于 2025-04-15 11:22

Subversion 1.6引入了一种叫做“Ctypes Python绑定”的东西,但没有相关的文档。有没有什么信息可以告诉我们这些绑定是什么,以及怎么使用它?比如,我有一台全新的Windows XP电脑,想用Subversion 1.6和这些神秘的Python绑定来控制SVN仓库。我到底需要下载、安装或编译什么,才能做到类似下面的事情

import svn from almighty_ctype_subversion_bindings
svn.get( "\\rep\\project" )

这和pysvn项目有什么关系?是同一种技术,还是不同的技术呢?

3 个回答

-1

我查了一下Python和Subversion(一个版本控制工具)之间的连接,但最后发现直接调用svn.exe更简单,像这样:

(stdout, stderr, err) = execute('svn export "%s" "%s"' \
   % (exportURL, workingCopyFolder))

这里的execute是一个这样的函数:

def execute(cmd):
    import subprocess
    proc = subprocess.Popen(\
          cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    (stdout, stderr) = proc.communicate()
    return (stdout, stderr, proc.returncode)

svn.exe的输出结果设计得很容易解析,如果需要的话。它甚至还有一个--xml的输出选项。

0

ctypes的主要目的就是让你不需要在任何地方编译东西。也就是说,虽然它很方便,但说明文档里提到了一些依赖关系和构建步骤。

这些绑定文件可以在Subversion的源代码包里找到,具体位置是subversion/bindings/ctypes-python/,里面有一个distutils的setup.py文件。

它们看起来是pysvn的继任者或者替代品。

1

你需要下载Subversion的源代码,安装Python(版本要在2.5及以上),还有一个叫做ctypesgen的工具。

关于如何构建ctypes绑定的详细步骤可以在这里找到。

最后你会得到一个叫做csvn的包,使用这个包的示例可以在这里查看。

撰写回答