svn分支管理以及增量更新.docx_第1页
svn分支管理以及增量更新.docx_第2页
svn分支管理以及增量更新.docx_第3页
svn分支管理以及增量更新.docx_第4页
svn分支管理以及增量更新.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

svn分支管理与增量更新项目中经常出现需求优先级和进度不同产生的代码混乱,无法打出需要的测试包问题。为解决该问题实施svn分支管理和增量更新。使用环境: MyEclipse Enterprise Workbench Version: 2014,svn插件svn分支管理使用分支最主要的目的是,多个分支可以并行,相互不干扰,而且任何时候都可以合并。其次,容易保证主干的稳定性。1.创建分支(1)在主干项目右击-Team-分支标记。如图所示:(2)弹出分支URL信息编辑框输入svn:/192.168.2.73/sengnon/land3,红色部分为分支名称,点击next。如图所示:(3)选择复制的版本,一般选择最新修订版,就是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 practices checks默认勾选(该默认勾选不灵活无法具体指定分支和配置),点击next。如图:(6)在弹窗中选择要合并的分支,以及默认的所有合适的版本点击next。如图:(7)弹出冲突处理设置,选择默认的通知我来处理点击finish。如图:(8)生成合并结果日志。如图:增量更新1.生成差异文件生成差异文件必须在提交代码之前!(1)提交前创建补丁,右击项目-Team-创建补丁。如图:(2)设置创建补丁的配置,选择保存到文件系统并指定具体的目录文件,在changes中选择变更文件,点击next。如图:(3)选择要比较的根目录,选择project,点击finish。如图:2.生成增量包(1)使用这个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 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 projectPath=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;/补丁版本 /* * 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(); System.out.println(df.format(new Date();/ new Date()为获取当前系统时间 /* *获取svn补丁文件中的变更文件列表 * */ public static List getPatchFileList() throws Exception List fileList=new ArrayList(); FileInputStream f = new FileInputStream(patchFile); BufferedReader dr=new BufferedReader(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.length()1) fileList.add(line); return fileList; / 找到变更文件列表根据路径复制对应class文件到更新文件夹 public static void copyFiles(List list) for(String fullFileName:list) if(fullFileName.indexOf(src/)!=-1)/对源文件目录下的文件处理 String fileName=fullFileName.replace(src,); fullFileName=classPath+fileName; if(fileName.endsWith(.java) fileName=fileName.replace(.java,.class); fullFileName=fullFileName.replace(.java,.class); String tempDesPath=fileName.substring(0,fileName.lastIndexOf(/); String desFilePathStr=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.mkdirs(); copyFile(fullFileName, desFileNameStr); System.out.println(fullFileName+复制完成); else/对普通目录的处理 String desFileName=fullFileName.replaceAll(webContent,); fullFileName=projectPath+/+fullFileName;/将要复制的文件全路径 String fullDesFileNameStr=desPath+/+version+/+webContent+/+desFileName; String desFilePathStr=fullDesFileNameStr.substring(0,fullDesFileNameStr.lastIndexOf(/); File desFilePath=new File(desFilePathStr); if(!desFilePath.exists() desFilePath.mkdirs(); copyFile(fullFileName, fullDesFileNameStr); System.out.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 copyFile(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); / 缓冲数组 byte b = new byte

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论