版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、svn分支管理与增量更新项目中经常出现需求优先级和进度不同产生的代码混乱,无法打出需要的测试包问题。为解决该问题实施svn分支管理和增量更新。使用环境: MyEclipse Enterprise Workbench Version: 2014,svn插件svn分支管理使用分支最主要的目的是,多个分支可以并行,相互不干扰,而且任何时候都可以合并。其次,容易保证主干的稳定性。1.创建分支(1)在主干项目右击->Team->分支标记。如图所示:(2)弹出分支URL信息编辑框输入svn:/192.168.2.73/sengnon/land3,红色部分为分支名称,点击next。如图所示:(3
2、)选择复制的版本,一般选择最新修订版,就是HEAD修订版,点击next。如图所示:(4)填写创建分支原因,如需要马上切换到新分支则勾选切换选项,点击finish。如图:(5)切换之后结果如图:(6)在分支上修改提交比较等功能与svn普通操作一致。2.合并分支(1)项目右击->Team->切换(s),(2)切换时会弹出下图,默认选择是标记本地和要切换的地址内容冲突(3)点击ok,切换成功。(4)选择项目->右击选择team->合并(5)合并方式选择,选择merge a range of revisions,去掉perform pre-merge beat practice
3、s checks默认勾选(该默认勾选不灵活无法具体指定分支和配置),点击next。如图:(6)在弹窗中选择要合并的分支,以及默认的所有合适的版本点击next。如图:(7)弹出冲突处理设置,选择默认的通知我来处理点击finish。如图:(8)生成合并结果日志。如图:增量更新1.生成差异文件生成差异文件必须在提交代码之前!(1)提交前创建补丁,右击项目->Team->创建补丁。如图:(2)设置创建补丁的配置,选择保存到文件系统并指定具体的目录文件,在changes中选择变更文件,点击next。如图:(3)选择要比较的根目录,选择project,点击finish。如图:2.生成增量包(1
4、)使用这个Java代码来生成一个更新包。在Java类中需根据本地情况修改patchFile,projectPath,webContent,classPath,desPath。package my.test;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import
5、java.io.IOException; import java.io.InputStreamReader; import java.text.SimpleDateFormat;import java.util.ArrayList; import java.util.Date;import java.util.List; public class DeployAddTest public static String patchFile="D:/patch.txt"/补丁文件,由eclipse svn plugin生成 public static String project
6、Path="F:/wk20170221/land1"/项目文件夹路径 public static String webContent="WebRoot"/web应用文件夹名 public static String classPath="F:/wk20170221/land1/WebRoot/WEB-INF/classes"/class存放路径 public static String desPath="D:/deploy"/补丁文件包存放路径 public static String version;/补丁版本
7、/* * param args * * * * throws Exception */ public static void main(String args) throws Exception getversion(); copyFiles(getPatchFileList(); /* * 根据时间生成版本号 * */ public static void getversion() SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");/设置日期格式 version=df.format(new Date(
8、); System.out.println(df.format(new Date();/ new Date()为获取当前系统时间 /* *获取svn补丁文件中的变更文件列表 * */ public static List<String> getPatchFileList() throws Exception List<String> fileList=new ArrayList<String>(); FileInputStream f = new FileInputStream(patchFile); BufferedReader dr=new Buffer
9、edReader(new InputStreamReader(f,"utf-8"); String line; /根据文件中的index有效文件和版本来过滤哪些是需要打在增量包里面的文件 while(line=dr.readLine()!=null) if(line.indexOf("Index:")!=-1) line=line.replaceAll(" ",""); line=line.substring(line.indexOf(":")+1,line.length(); if(line.
10、length()>1) fileList.add(line); return fileList; / 找到变更文件列表根据路径复制对应class文件到更新文件夹 public static void copyFiles(List<String> list) for(String fullFileName:list) if(fullFileName.indexOf("src/")!=-1)/对源文件目录下的文件处理 String fileName=fullFileName.replace("src",""); full
11、FileName=classPath+fileName; if(fileName.endsWith(".java") fileName=fileName.replace(".java",".class"); fullFileName=fullFileName.replace(".java",".class"); String tempDesPath=fileName.substring(0,fileName.lastIndexOf("/"); String desFilePa
12、thStr=desPath+"/"+version+"/"+webContent+"/WEB-INF/classes"+tempDesPath; String desFileNameStr=desPath+"/"+version+"/"+webContent+"/WEB-INF/classes"+fileName; File desFilePath=new File(desFilePathStr); if(!desFilePath.exists() desFilePath.m
13、kdirs(); copyFile(fullFileName, desFileNameStr); System.out.println(fullFileName+"复制完成"); else/对普通目录的处理 String desFileName=fullFileName.replaceAll(webContent,""); fullFileName=projectPath+"/"+fullFileName;/将要复制的文件全路径 String fullDesFileNameStr=desPath+"/"+versi
14、on+"/"+webContent+"/"+desFileName; String desFilePathStr=fullDesFileNameStr.substring(0,fullDesFileNameStr.lastIndexOf("/"); File desFilePath=new File(desFilePathStr); if(!desFilePath.exists() desFilePath.mkdirs(); copyFile(fullFileName, fullDesFileNameStr); System.out.
15、println(fullDesFileNameStr+"复制完成"); private static void copyFile(String sourceFileNameStr, String desFileNameStr) File srcFile=new File(sourceFileNameStr); File desFile=new File(desFileNameStr); try copyFile(srcFile, desFile); catch (IOException e) e.printStackTrace(); public static void c
16、opyFile(File sourceFile, File targetFile) throws IOException BufferedInputStream inBuff = null; BufferedOutputStream outBuff = null; try / 新建文件输入流并对它进行缓冲 inBuff = new BufferedInputStream(new FileInputStream(sourceFile); / 新建文件输出流并对它进行缓冲 outBuff = new BufferedOutputStream(new FileOutputStream(targetFile);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育领域教师责任承诺书(6篇)
- 肝脏肿物冷冻消融术后护理
- 腹腔脓肿引流管换管护理
- 道路出行责任安全承诺书7篇
- 人才选拔合规责任承诺书(4篇)
- 环保行动我们的小小环保使者议论文(10篇)
- 广东省广州市越秀区2026届初三网上学习周练语文试题试卷含解析
- 建筑工程项目管理风险管理手册
- 会议高效沟通与反馈记录工具
- 品牌宣传素材库设计创意展示版
- 2026学校防范电信网络诈骗“无诈校园”建设工作方案(完整版)
- 2026时事政治必考试题库含答案
- 2026届高考政治一轮复习:统编版必修1~4+选择性必修1~3全7册必背考点提纲汇编
- 2025年组织生活会个人发言提纲存在问题及具体整改措施
- 玻璃钢化粪池施工方案(化粪池)
- 2023年黑龙江省学位英语历年考试真题
- 安全生产考试中心工作制度
- 医院引进新药申请表
- GB/T 26379-2011纺织品木浆复合水刺非织造布
- GB/T 13773.2-2008纺织品织物及其制品的接缝拉伸性能第2部分:抓样法接缝强力的测定
- 腰骶部疾病诊断及治疗
评论
0/150
提交评论