0

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

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

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

谢谢!

4

1 回答 1

2

SVN客户端这个命令行工具是开发者日常使用的。如果你只需要一些琐碎的事情,比如导出/结账/bump-version-and-commit,你可以用标准的 Unix 方式与它交互,提供命令行参数和解析输出。这是最简单的方法,如果出现问题,您可以通过手动重复操作来调试损坏的操作。我知道很少有程序可以做到这一点,而且它们似乎没有任何问题。

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

较低级别的 SVN API(如存储库/工作副本访问 api)提供对 Subversion 流程各个方面的所有控制。如果您想使用存储库作为数据库后端,如果您需要对 repo/wc 进行危险的低级操作(例如编辑日志消息),那么就可以使用它。它既不简单也不好用,即使是基本的东西(事实上,来自 libsvnclient 的函数是这些 API 的快捷方式,只是为了让简单的事情变得简单)。我无法想象为什么 CI 系统需要它。

于 2012-05-25T16:29:27.720 回答