自动获取svn的版本号

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/6601904.html



需求#

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

image

下面是我试过的几种做法

SubWCRev#

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

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

svninfo.template的内容如下:WCREV

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);
    }
    
}
复制代码
作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(3399)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
CONTENTS
点击右上角即可分享
微信分享提示