2012-05-25 268 views
0

我目前正在为我的团队设置一个小型持续集成服务器。我们最近将我们的源代码切换到SVN服务器。SVN客户端和API之间的主要区别是什么?

我想知道SVN客户端从一些脚本内部或使用Python脚本中的svn API之间的主要区别。除了我对一种语言或另一种语言的了解之外,为什么我会选择其中一种。

我仍然是这个项目的开始,所以我认为现在是这样一个问题的正确时机。

谢谢!

回答

2

SVN客户端命令行工具是开发人员每天使用的工具。如果你只需要导出/检出/缓冲版本和提交等简单的事情,你可以用标准的Unix方式来连接命令行参数和解析输出。这是最简单的方法,如果发生中断,您可以通过手动重复调试破坏的操作。我知道很少有这样做的程序,它们似乎没有任何问题。

SVN客户端API(libsvnclient)包含的那些命令行客户机提供,基本上1相同的命令编程接口:1,但它给出了该过程略微更多的控制。如果您期望将会操纵文件列表/树,复杂的包含/排除规则,如果您希望某些文件的自动冲突解决方案,以及其他可能过于复杂的bash脚本或解析输出的内容,那么这个API将会有所帮助。学习和使用非常简单(很简单,可以立即开始使用)。

低级SVN API(如repository/workingcopy access api)提供了对Subversion过程所有方面的全部控制。如果你想使用repository作为数据库后端,如果你需要对repo/wc进行危险的低级操作(比如编辑日志消息),那么就可以使用它了。即使对于基本的东西,它也不是简单也不容易使用的(实际上,libsvnclient的函数是这些API的快捷方式,只是简单的事情而已)。我无法想象为什么CI系统会需要它。

+0

这是一个很好的描述,你有一个参考(例如SVN红色书)吗,还是它是自制的? – mliebelt

+0

@mliebelt Homebrew。我有一个项目将文件保存在SVN信息库中,并且我从调用'svn'到使用libsvnclient。 – hamstergene

+0

@hamstergene谢谢你的指导性答复! –

相关问题