SVN 第8章 其他命令

2021-06-10 鲁鲁槟 收藏

一、svnserve

A、描述

svnserve允许Subversion版本库使用svn网络协议,你可以作为独立服务器进程运行svnserve,或者是使用其它进程,如inetd、xinetd或sshd为你启动进程。

一旦客户端已经选择了一个版本库来传递它的URL,svnserve会读取版本库目录的conf/svnserve.conf文件,来检测版本库特定的设置,如使用哪个认证数据库和应用怎样的授权策略。

B、选项

不象前面描述的例子,svnserve没有子命令——svnserve完全通过选项控制。

  • --daemon (-d):导致svnserve以守护进程方式运行,svnserve维护本身并且接受和服务svn端口(缺省3690)的TCP/IP连接。

  • --listen-port=PORT:在守护进程模式时导致svnserve监听*PORT*端口。

  • --listen-host=HOST:svnserve监听的*HOST*,可能是一个主机名或是一个IP地址。

  • --foreground:当与-d一起使用,会导致svnserve停留在前台,主要用来调试。

  • --inetd (-i):导致svnserve使用标准输出/标准输入文件描述符,更准确的是使用inetd作为守护进程。

  • --help (-h):显示有用的摘要和选项。

  • --version:显示版本信息,版本库后端存在和可用的模块列表。

  • --root=ROOT (-r=ROOT):设置svnserve服务的版本库的虚拟根,客户端提供的URL中显示的路径会解释为这个根的相对路径,不会允许离开这个根。

  • --tunnel (-t):导致svnserve以管道模式运行,很像inetd操作的模式(服务于一个标准输入/标准输出的连接),除了连接是用当前uid的用户名预先认证过的这一点。这个选项在客户端使用如ssh之类的管道时使用。

  • --tunnel-user NAME:与--tunnel选项结合使用;告诉svnserve假定NAME就是认证用户,而不是svnserve进程的UID用户,当希望多个用户通过SSH共享同一个系统帐户,但是维护各自的提交标示符时非常有用。

  • --threads (-T):当以守护进程模式运行,导致svnserve为每个连接产生一个线程而不是一个进程,svnserve进程本身在启动后会一直在后台。

  • --listen-once (-X):导致svnserve在svn端口接受一个连接,维护完成它退出。这个选项主要用来调试。

二、svnversion

A、描述

svnversion [OPTIONS] WC_PATH [TRAIL_URL]

总结工作拷贝的本地修订版本。

svnversion是用来总结工作拷贝修订版本混合的程序,结果修订版本号或范围会写到标准输出。

如果提供TRAIL_URL,URL的尾端部分用来监测是否WC_PATH本身已经跳转(监测WC_PATH的跳转不需要依赖TRAIL_URL)。

B、选项

像svnserve,svnversion没有子命令,只有选项。

  • --no-newline (-n):忽略输出的尾端新行。.

  • --committed (-c):使用最后修改修订版本而不是当前的(例如,本地存在的最高修订版本)修订版本。

  • --help (-h):打印帮助摘要。

  • --version:打印svnversion,如果没有错误退出。

C、例子

如果工作拷贝都是一样的修订版本(例如,在更新后那一刻),会打印修订版本:

$ svnversion .
4168

添加TRAIL_URL来展示工作拷贝不是从你希望的地方跳转过来的:

$ svnversion . /repos/svn/trunk
4168

对于混合修订版本的工作拷贝,修订版本的范围会被打印:

$ svnversion .
4123:4168

如果工作拷贝包含修改,后面会紧跟一个"M":

$ svnversion .
4168M

如果工作拷贝已经跳转,后面会有一个"S":

$ svnversion .
4168S

因此,这里是一个混合修订版本,跳转的工作拷贝包含了一些本地修改:

$ svnversion .
4212:4168MS

如果从一个目录而不是工作拷贝调用,svnversion假定它是一个导出的工作拷贝并且打印"exported":

$ svnversion .
exported
阅读 163