b/w svn信息和svnversion有什么区别



我需要用最新版本(工作副本)标记我的项目。我曾想过使用svn-info命令,但我正在进行选择性更新,所以我有一个混合版本的工作副本,在进行svn-info时,它显示了一些旧版本。请帮助标记我的来源,这是一个混合修订。

我还找到了sversion,它会有帮助吗??哪个更适合作业svn-info或svnversion

虽然根据@Ivan Zhakov的回答,sversion可以很方便,但它不能100%工作,特别是SVN版本7的工作副本子文件夹(我只得到"导出"的结果)

为了在构建脚本中兼容,我使用svn-info。

REVISION=$(svn info | grep -i revision | cut -f2 -d: | tr -d [:space:])

您可以通过获得类似的"本地修改"标志

OUTSTANDING=$(svn status | grep '^[M!DA]')

svnversion公开了svn信息的相同信息(修订号),但进行了汇总。

我一直使用svn信息来获取这些信息。

要标记混合修订WC,只需使用"从WC复制"命令:

svn copy WC URL -m "Tagged version x.x.x".

如果工作是单一修订、未修改、未切换,并且URL与可选的TRAIL_URL参数匹配,则svnversion打印单一版本号。如果工作复制是不寻常的版本号将更加复杂:

 4123:4168     mixed revision working copy
 4168M         modified working copy
 4123S         switched working copy
 4123P         partial working copy, from a sparse checkout
 4123:4168MS   mixed revision, modified, switched working copy

sversion在您想要编写一个将信息放入字符串的构建脚本时最有用,例如,您的构建过程可以创建一个版本字符串,该字符串被编译到应用程序中,并包含sversion的输出,应用到工作副本的基本目录。与只提供单个文件或目录信息的"svn-info"不同,svnversion将查看所有子目录并修改其输出(请参阅Ivan Zhakov的回答),以反映本地mod或不同版本的任何混合。如果上面只写着"4123",你就知道你可以(如果一切都设置正确的话)通过查看4123版本来重新生成相同的版本。

svn info应用于您的repo url,而不是工作副本。这肯定是最新的:

svn info http://server/svn/repo

svnversion不是svn命令,它是第三方脚本。它应该使用svn info来迭代您的工作副本并获得修订。

最新更新