标签:svn 创建分支
2种方法:
创建分支之前一定要先更新到最新版本。
1.你用tortoiseSVN点版本库浏览,在需要建立分支的路径(比如trunk)点copy to + 新分支名称(注意:必须与trunk不能同名,你可以新建一个名称比如branch),然后在分支下面update2.tortoiseSVN点版本库浏览,你在需要创建的路径下右键tortoiseSVN 选择create folder 然后创建新路径名称(文件夹)然后把主干或者其他分支路径的代码(拉分支这种情况估计想并行开发)导入到这个路径下就可以了。,然后在分支下面update
创建分支是否成功,在分支文件夹里面 TortoiseSVN ---->版本库浏览器 定位的是分支路径那就对了,如果还是主干路径那创建分支就有问题了。
注意:1、如果分支目录在没有分支的情况下check out下来的项目,这时候工作副本对应版本库的路径仍为原来对应的主干的目录。所以在客户端文本夹中删除之后 再从服务器Update分支的项目。不能用客户端SVN delete,这样会删除主干上的项目。
2、如果是多个项目,只保留几个项目做分支,那就从版本库浏览器中分支的项目右键删除,不能从本地svn delete,这样会删除主干上的项目。
修改相关文件项目名,这样就能引入eclipse 了
/gjmj/mallv2/branchs/gjmj_20141110/shop/.classpath
/gjmj/mallv2/branchs/gjmj_20141110/shop/.project
/gjmj/mallv2/branchs/gjmj_20141110/shop/WebRoot/WEB-INF/web.xml
/gjmj/mallv2/branchs/gjmj_20141110/shop/config/boot.xml
/gjmj/mallv2/branchs/gjmj_20141110/shop/config/ui/path.xml
下面修改相关文件项目名的代码根据具体需要改动
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; /** * 1、修改多个项目的路径,以便导入eclipse * 2、全部替换gjmj_20141110为分支文件夹 * @author Coco * */ public class FileContentReplace { private static String REPLACE_SRC_FILE = "E:\\workspaces\\gjmj\\mallv2\\branchs\\gjmj_20141110"; private static String REPLACE_EXCLUDE_FILE = "E:\\Workspaces\\gjmj\\mallv2\\branchs\\gjmj_20141110\\core\\WebRoot\\sr;E:\\Workspaces\\gjmj\\mallv2\\branchs\\gjmj_20141110\\core\\WebRoot\\upload;E:\\Workspaces\\gjmj\\mallv2\\branchs\\gjmj_20141110\\core\\WebRoot\\WEB-INF\\lib;toruk.xml"; private static String REPLACE_CONTENT = "gjmj_mallv2->gjmj_20141110;E:/Workspaces/gjmj/mallv2/project/->E:/Workspaces/gjmj/mallv2/branchs/gjmj_20141110/;E:/workspaces/gjmj/mallv2/project/->E:/workspaces/gjmj/mallv2/branchs/gjmj_20141110/"; public static List<String> EXCLUDE_FILE_LIST = null; public static Map<String,String> getReplaceMaping() { Map<String,String> map = new HashMap<String,String>(); if(REPLACE_CONTENT!=null){ String[] repContentArr = REPLACE_CONTENT.split(";"); for(String repMap:repContentArr){ String[] arg = repMap.split("->"); if(arg.length!=2){ throw new RuntimeException(repMap+"不正确"); }else{ map.put(arg[0], arg[1]); } } } return map; } public static List<String> excludeFileList(){ if(EXCLUDE_FILE_LIST==null){ EXCLUDE_FILE_LIST = new ArrayList<String>(); if(REPLACE_EXCLUDE_FILE!=null){ String[] strArr = REPLACE_EXCLUDE_FILE.split(";"); for(String str:strArr){ EXCLUDE_FILE_LIST.add(str.trim()); } } return EXCLUDE_FILE_LIST; }else{ return EXCLUDE_FILE_LIST; } } public static void handFile(File infile,String fromCharSet,String toCharSet) throws Exception{ if(infile.getName().equals(".svn")){ return; } if(infile.getName().contains("!")){ return; } for(String excludeFile:excludeFileList()){ if(infile.getPath().toLowerCase().contains(excludeFile.toLowerCase())||infile.getName().equals(excludeFile)){ return; } } BufferedReader in = new BufferedReader(new InputStreamReader( new FileInputStream(infile), fromCharSet)); String reading; String content = ""; while ((reading = in.readLine()) != null) { content +=reading+"\r\n"; } boolean flag = false; Map<String,String> replaceMapping = getReplaceMaping(); if(replaceMapping!=null){ Set<Map.Entry<String, String>> replaceEntrys = replaceMapping.entrySet(); for(Iterator<Map.Entry<String, String>> it = replaceEntrys.iterator();it.hasNext();){ Map.Entry<String, String> entry = it.next(); String key = entry.getKey(); if(content.contains(key)){ flag = true; } } } if(flag){ File outfile = new File(infile + ".tmp"); PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(new FileOutputStream(outfile), toCharSet))); if(replaceMapping!=null){ Set<Map.Entry<String, String>> replaceEntrys = replaceMapping.entrySet(); for(Iterator<Map.Entry<String, String>> it = replaceEntrys.iterator();it.hasNext();){ Map.Entry<String, String> entry = it.next(); String key = entry.getKey(); String value = entry.getValue(); content = content.replaceAll(key, value); } System.out.println("替换文件:"+infile.getPath()); } out.println(content); out.flush(); out.close(); in.close(); infile.delete(); outfile.renameTo(infile); }else{ in.close(); } } public static void main(String[] args) throws Exception { replaceFile(new File(REPLACE_SRC_FILE),"UTF-8","UTF-8"); } public static void replaceFile(File filePath,String fromCharSet,String toCharSet) throws Exception{ if(filePath.exists()==false){ new RuntimeException(filePath.getPath()+"不存在"); } if(filePath.getName().equals(".svn")){ return; } for(String excludeFile:excludeFileList()){ if(filePath.getPath().toLowerCase().contains(excludeFile.toLowerCase())){ return; } } if(filePath.isDirectory()){ File[] childFiles = filePath.listFiles(); if(childFiles!=null){ for(File childFile:childFiles){ if(childFile.isFile()){ handFile(childFile,fromCharSet, toCharSet); }else{ replaceFile(childFile,fromCharSet, toCharSet); } } } }else{ handFile(filePath,fromCharSet, toCharSet); } } }
标签:svn 创建分支
原文地址:http://blog.csdn.net/xuke6677/article/details/41008869