从SVN到TFS,为了方便生产发布,写了Package Maker,一个基于TFS的增量版本包生成工具。
现在又从TFS切到SVN,于是写了 Package Generate,这个工具比起Package Maker来,少了配件文件,少了通用性。自己用,就随便点。
工具用到了SharpSvn.dll,这个用来以编程接口的形式访问SVN,获取变更集。相对TFS要引用一堆dll来讲,这个SharepSvn还是不错的,一个dll,hold所有。不过,SharpSvn的调用方式与TFS接口的调用方式,还真是差异大大的。
一、授权方面
SharpSvn指定用户名密码,而且网上的示例代码是异步(无人性的),代码跳跃大。TFS则,无需用户名密码,应该是使用了本机登陆过TFS之后的授权。在坑里摸索之后,个人建议使用以下方式给SharpSvn指定svn登陆帐号:
SvnClient client = new SvnClient();
client.Authentication.ForceCredentials(“zhongdaiqi”, “zhongdaiqi”);
二、变更集、变更项
SharpSvn与TFS对于同一事物采用了不同的描述,在SharSvn里,看到的是log,在TFS里看到的是ChangeSet,在接口设计方面,个人觉得还是TFS的接口更为漂亮。SharpSvn的技口调用方式使用了out传参,有点怪异,前几年,见一个同事这个写过,现在再次见到,也觉得很奇怪。
获取SVN变更集(变更记录)需要这么获取:
Collection<SvnLogEventArgs> logItems;
client.GetLog(localDir, out logItems);
三、工程名提取
这个源自最初写的PackageMaker,采用正则提取。
prjNamePatten = @”^/wms/branches/Rattan-WMS/(.*?)/[\s\S]*$”;
四、更新说明自动合成
更新说明自动由变更集注释合并来,省去人工编辑
五、配置文件检测
如果配置文件发生过变化,则会生成一个txt警示配置文件发生变化。
上个图:
软件界面:
生成结果: