SVN客户端和API之间的主要区别是什么?

时间:2012-05-25 15:31:24

标签: svn svn-api

我正在为我的团队设置一个小型的持续集成服务器。我们最近将源代码切换到SVN服务器。

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

SVN客户端命令行工具是开发人员每天使用的工具。如果你只需要像export / checkout / bump-version-and-commit这样的简单事情,你可以用标准的Unix方式与它交换命令行参数和解析输出。这是最简单的方法,如果出现问题,您可以通过手动重复调试损坏的操作。我知道很少有这样做的程序,它们似乎没有任何问题。

SVN客户端API (libsvnclient)包含与命令行客户端提供的命令相同的编程接口,基本上是1:1,但它对进程提供了稍微更多的控制。如果您希望操作文件列表/树,复杂的包含/排除规则,如果您想要对某些文件进行自动冲突解决,以及其他可能因bash脚本或解析输出而过于复杂的事情,那么这个API会有所帮助。学习和使用非常简单(简单到现在就开始使用它)。

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