代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
】
JAVA集成SVN,查看应用更新日志
作者:
Yvette
/ 发布于
2015/7/20
/
1007
SVN日志管理集成了SVN,通过SVNKit查看系统开发版本的进度。 集成了easyui.
public String getSVNLogs() { // 版本库初始化 DAVRepositoryFactory.setup(); // 资源库相关登录配置信息 String url = "http://172.16.3.68:7777/svn/xxxxx"; String username = "xxxx"; String password = "xxxx"; long startRevision = 0;// 最初版本 long endRevision = -1;// 最近版本 long lastRevision = 0; // 资源库 SVNRepository repository = null; List<SvnLogModel> svns = new ArrayList<SvnLogModel>(); try { // 建立一个新的资源库 repository = DAVRepositoryFactory.create(SVNURL.parseURIEncoded(url)); // 登录确认信息 ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(username, password); repository.setAuthenticationManager(authManager); lastRevision = repository.getLatestRevision(); // 存放结果 final Collection logEntries = new ArrayList<SVNLogEntry>(); startRevision = lastRevision - ((page) * rows) + 1; if (startRevision < 0) { startRevision = 0; } endRevision = lastRevision - ((page - 1) * rows); repository.log(new String[] { "/" }, logEntries, startRevision, endRevision, true, true); // 遍历 for (Iterator entries = logEntries.iterator(); entries.hasNext();) { SVNLogEntry logEntry = (SVNLogEntry) entries.next(); SvnLogModel svn = new SvnLogModel(); svn.setMessage(StringUtil.string2Json(logEntry.getMessage())); svn.setAuthor(logEntry.getAuthor()); svn.setDate(logEntry.getDate()); svn.setRevision(logEntry.getRevision()); String loge = ""; if (logEntry.getChangedPaths().size() > 0) { Set changedPathsSet = logEntry.getChangedPaths().keySet(); for (Iterator changedPaths = changedPathsSet.iterator(); changedPaths.hasNext();) { SVNLogEntryPath entryPath = logEntry.getChangedPaths().get(changedPaths.next()); char entrytype = entryPath.getType(); String typeCN = ""; if ("M".equals(String.valueOf(entrytype))) { typeCN = "修改"; } else if ("A".equals(String.valueOf(entrytype))) { typeCN = "新增"; } else if ("D".equals(String.valueOf(entrytype))) { typeCN = "删除"; } loge += " " + typeCN + " " + entryPath.getPath() + ((entryPath.getCopyPath() != null) ? " (from " + entryPath.getCopyPath() + " revision " + entryPath.getCopyRevision() + ")" : "") + "\n"; } } svn.setLogEntry(StringUtil.string2Json(loge)); svns.add(svn); } } catch (Exception ex) { System.out.println(ex.toString()); } Collections.reverse(svns); GridModel gridModel = new GridModel(); gridModel.setRows(svns); gridModel.setTotal(lastRevision); OutputJson(gridModel); OutputJson(svns, Constants.TEXT_TYPE_JSON); return null; } ]jsp <script type="text/javascript"> $(function() { $('#dg').datagrid({ rownumbers : true, fit : true, pagination : true, singleSelect : true, border : false, pageSize : 50, pageList : [20,50,100,500,1000], nowrap : false, url : "svn/svnAction!getSVNLogs.action", columns : [ [ { field : 'revision', title : '修订版本', halign: 'center', align : 'right', width : 60 }, { field : 'author', title : '提交者', halign: 'center', width : 60 }, { field : 'date', title : '日期', halign: 'center', width : 150, }, { field : 'message', title : '注释信息', halign: 'center', width : 350, formatter : function(value,rowData) { if(value != undefined ) { return value.replaceAll("\n", ""); } } } ] ], onLoadSuccess : function () { $(this).datagrid("fixRownumber"); }, onClickRow: function (index, row) { value=row.logEntry; if(value != undefined ) { value=value.replaceAll("\n", "") $("#logfile").html(value); } } }); }); String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); } else { return this.replace(reallyDo, replaceWith); } } </script> </head> <body> <div class="easyui-layout" data-options="fit:true"> <div data-options="region:'north'" style="height:50px;border-top-style: none;border-left-style: none;border-right-style: none;"> <div class="well-small" style="margin-left: 5px;margin-top: 5px"> <span class="badge">提示</span>SVN日志管理集成了SVN,通过SVNKit查看系统开发版本的进度。 </div> </div> <div data-options="region:'west',split: true," style="width:700px"> <table id="dg" title="SVN更新日志"></table> </div> <div data-options="region:'center',split: true," title="受影响的文件、目录"> <table><tr><td id="logfile"> </td></tr></table> </div> </div>
试试其它关键字
集成
SVN
更新日志
同语言下
.
StringHelper.cs 对html标签过滤
.
不调用Dbhelper数据库的后台代码
.
后台弹出提示框,防止页面刷新。
.
倒计时间表
.
JAVA集成SVN,查看应用更新日志
.
输入一串无序数,返回出现次数最多的数字,并返回个数
.
table中连续字符换行
.
WPF 获取屏幕分辨率
.
简单的实现用户注册时,向其油箱发送激活码邮件,并进
.
JavaMail发送邮件
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Yvette
贡献的其它代码
(
20
)
.
计算文档每行出现的数字个数,并计算整个文档的数字总
.
去除input和textarea点击选中框,只能输入数字
.
获取昨天日期、今天日期、明天日期以及前一个小时和后
.
返回字符串A从start位置到结尾的字符串
.
不使用第三个变量完成两个整数的交换
.
获取本机内网和外网IP
.
遍历子目录文件
.
获取工程目录
.
自定义导航栏按钮(左侧)
.
上传文件
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3