svn分支管理以及增量更新Word格式文档下载.docx
《svn分支管理以及增量更新Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《svn分支管理以及增量更新Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
![svn分支管理以及增量更新Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/27/bca91997-5955-4d6f-b4f2-5d3669fe14ec/bca91997-5955-4d6f-b4f2-5d3669fe14ec1.gif)
(5)切换之后结果如图:
(6)在分支上修改提交比较等功能与svn普通操作一致。
2.合并分支
(1)项目右击->
切换(s),
(2)切换时会弹出下图,默认选择是标记本地和要切换的地址内容冲突
(3)点击ok,切换成功。
(4)选择项目->
右击选择team->
合并
(5)合并方式选择,选择mergearangeofrevisions,去掉performpre-mergebeatpracticeschecks默认勾选(该默认勾选不灵活无法具体指定分支和配置),点击next。
(6)在弹窗中选择要合并的分支,以及默认的所有合适的版本点击next。
(7)弹出冲突处理设置,选择默认的通知我来处理点击finish。
(8)生成合并结果日志。
增量更新
1.生成差异文件
生成差异文件必须在提交代码之前!
(1)提交前创建补丁,右击项目->
创建补丁。
(2)设置创建补丁的配置,选择保存到文件系统并指定具体的目录文件,在changes中选择变更文件,点击next。
(3)选择要比较的根目录,选择project,点击finish。
2.生成增量包
(1)使用这个Java代码来生成一个更新包。
在Java类中需根据本地情况修改patchFile,projectPath,webContent,classPath,desPath。
packagemy.test;
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Date;
importjava.util.List;
publicclassDeployAddTest{
publicstaticStringpatchFile="
D:
/patch.txt"
;
//补丁文件,由eclipsesvnplugin生成
publicstaticStringprojectPath="
F:
/wk20170221/land1"
//项目文件夹路径
publicstaticStringwebContent="
WebRoot"
//web应用文件夹名
publicstaticStringclassPath="
/wk20170221/land1/WebRoot/WEB-INF/classes"
//class存放路径
publicstaticStringdesPath="
/deploy"
//补丁文件包存放路径
publicstaticStringversion;
//补丁版本
/**
*@paramargs
*
*@throwsException
*/
publicstaticvoidmain(String[]args)throwsException{
getversion();
copyFiles(getPatchFileList());
}
*根据时间生成版本号
publicstaticvoidgetversion(){
SimpleDateFormatdf=newSimpleDateFormat("
yyyyMMddHHmmss"
);
//设置日期格式
version=df.format(newDate());
System.out.println(df.format(newDate()));
//newDate()为获取当前系统时间
}
/*
*获取svn补丁文件中的变更文件列表
*/
publicstaticList<
String>
getPatchFileList()throwsException{
List<
fileList=newArrayList<
();
FileInputStreamf=newFileInputStream(patchFile);
BufferedReaderdr=newBufferedReader(newInputStreamReader(f,"
utf-8"
));
Stringline;
//根据文件中的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);
returnfileList;
//找到变更文件列表根据路径复制对应class文件到更新文件夹
publicstaticvoidcopyFiles(List<
list){
for(StringfullFileName:
list){
if(fullFileName.indexOf("
src/"
=-1){//对源文件目录下的文件处理
StringfileName=fullFileName.replace("
src"
fullFileName=classPath+fileName;
if(fileName.endsWith("
.java"
)){
fileName=fileName.replace("
.class"
fullFileName=fullFileName.replace("
StringtempDesPath=fileName.substring(0,fileName.lastIndexOf("
/"
StringdesFilePathStr=desPath+"
+version+"
+webContent+"
/WEB-INF/classes"
+tempDesPath;
StringdesFileNameStr=desPath+"
+fileName;
FiledesFilePath=newFile(desFilePathStr);
if(!
desFilePath.exists()){
desFilePath.mkdirs();
copyFile(fullFileName,desFileNameStr);
System.out.println(fullFileName+"
复制完成"
}else{//对普通目录的处理
StringdesFileName=fullFileName.replaceAll(webContent,"
fullFileName=projectPath+"
+fullFileName;
//将要复制的文件全路径
StringfullDesFileNameStr=desPath+"
+desFileName;
StringdesFilePathStr=fullDesFileNameStr.substring(0,fullDesFileNameStr.lastIndexOf("
copyFile(fullFileName,fullDesFileNameStr);
System.out.println(fullDesFileNameStr+"
privatestaticvoidcopyFile(StringsourceFileNameStr,StringdesFileNameStr){
FilesrcFile=newFile(sourceFileNameStr);
FiledesFile=newFile(desFileNameStr);
try{
copyFile(srcFile,desFile);
}catch(IOExceptione){
e.printStackTrace();
publicstaticvoidcopyFile(FilesourceFile,FiletargetFile)throwsIOException{
BufferedInputStreaminBuff=null;
BufferedOutputStreamoutBuff=null;
//新建文件输入流并对它进行缓冲
inBuff=newBufferedInputStream(newFileInputStream(sourceFile));
//新建文件输出流并对它进行缓冲
outBuff=newBufferedOutputStream(newFileOutputStream(targetFile));
//缓冲数组
byte[]b=newbyte[1024*5];
intlen;
while((len=inBuff.read(b))!
=-1){
outBuff.write(b,0,len);
//刷新此缓冲的输出流
outBuff.flush();
}finally{
//关闭流
if(inBuff!
=null)
inBuff.close();
if(outBuff!
outBuff.close();
}
3发布增量包
(1)复制文件夹替换服务器对应文件目录,重启服务。