自动获取svn的版本号

简介:



需求

在做打包时,需要获取本地svn仓库的版本号,如下所示:

image

下面是我试过的几种做法

SubWCRev

使用SubWCRev.exe(TortoiseSVN自带的小工具),用法简单,但获取到的版本号有时候会有一定的出入,比如svn的日志在58之后下个版本就是60时,就会有出入。其它情况下是正常的。

用法:通过指定的template,进行替换

svninfo.template的内容如下:WCREVWCREV

svninfo.txt

用法:SubWCRev.exe xxx路径 xxx路径/svninfo.template xxx路径/svninfo.txt

运行之后就会根据svninfo.template中的模板自动往svninfo.txt中替换成相应的内容

参考:http://blog.csdn.net/analogous_love/article/details/47293509

 

SVN 命令

使用svn 自带的命令,可以打印出来,但是不会在bat中处理这些字符串,还是放弃了

如下:

image

svn info 查看当前的信息

svn log –l 1 查看最后的一个提交信息

找到一个可用的bat语句如下:https://github.com/zhaoqingqing/blog_samplecode/blob/master/workflow-tools/BAT/bat%E8%8E%B7%E5%8F%96svn%E7%89%88%E6%9C%AC%E5%8F%B7.bat

复制代码
for /f "tokens=5" %%i in ('SubWCRev  e:\3dsn\client\client_demo_ios\^|find "Last committed at revision"') do set version=%%i

echo %version%

pause
复制代码

 

sharpsvn

官网:http://sharpsvn.open.collab.net/

不得不吐槽下,这个文档真的是很少!

下面是我写的获取本地及服务器版本号

复制代码
private static string ServerUrl = "http://svn2.666.com/client/client_demo/";
private static string localPath = @"e:/xxx/client/client_demo_ios/";

static void Main(string[] args)
{
    //获取服务器最新的版本号
    Uri url = new Uri(ServerUrl);
    SvnRemoteSession svnRemoteSession = new SvnRemoteSession(url);
    long lastReversion = 0;
    svnRemoteSession.GetLatestRevision(out lastReversion);
    Console.WriteLine("服务器版本号:{0}",lastReversion);

    //获取本地版本号
    using (SvnClient client = new SvnClient())
    {
        SvnPathTarget svnPathTarget = new SvnPathTarget(localPath);
        SvnInfoEventArgs info;
        client.GetInfo(svnPathTarget, out info);
        Console.WriteLine("本地版本:{0}", info.Revision);
    }
    
}



本文转自XXXXX博客园博客,原文链接: http://www.cnblogs.com/zhaoqingqing/p/6601904.html ,如需转载请自行联系原作者
相关文章
|
Java Maven
SpringBoot Maven打包包含时间戳和svn版本号
1.修改pom.xml在里面添加 com.google.code.maven-svn-revision-number-plugin ...
5576 0
|
C# C++
VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
原文:VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#) 在开发项目时,需要知道当前发布的到底是哪个版本,比较好的方式就是获取SVN的版本来作为项目的版本。
2097 0
|
1月前
|
存储 网络协议 Ubuntu
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
|
3月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
39 1
|
3月前
|
Apache 项目管理 数据安全/隐私保护
【cpolar】TortoiseSVN如何安装并实现公网提交文件到本地SVN服务器
【cpolar】TortoiseSVN如何安装并实现公网提交文件到本地SVN服务器
46 0
|
7月前
|
IDE Linux 开发工具
从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决
从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决