- 浏览: 1273053 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (169)
- linux (22)
- java (11)
- javascript (7)
- ofbiz (3)
- json (1)
- mysql (4)
- mail (1)
- svn (3)
- tools (5)
- ruby on rails (5)
- jquery (2)
- html (1)
- jpa (1)
- linux ubuntu (3)
- ubuntu12.04 (1)
- git (1)
- photoshop (1)
- linux和windows糸统维护 (1)
- svn merge (1)
- eclipse svn (1)
- joda-time (1)
- ipad2 (1)
- ant (1)
- flash cookie例子,flash cookie (1)
- flash cookie例子,flash cookie使用actionscript3类 (1)
- flash cookie例子,flash操作cookie (1)
- swf文件的反编译,flash文件的反编译 (1)
- mac (1)
- datepicker (1)
- java,统计汉字数 (1)
- idea (1)
- idea svn (1)
- idea java jar (1)
- mac idea 快捷键 (1)
- mac idea 常用配置 (1)
- intellij idea junit (1)
最新评论
-
qiuqinjun:
有没有测试代码呢
Java 多叉树的实现,完成树的初始化和遍历 -
yuanliangding:
没加 -b,是随机出多少个密码偿试。?
linux下zip文件密码破解Fcrackzip -
zenmshuo:
还有C1Calendar,也推荐试试
日历控件datepicker的使用 -
sucheng2016:
如何计算当天最大时间 有什么方法
joda-time的使用 -
sucheng2016:
很好很强打
joda-time的使用
每次从svn上打增包都很麻烦,好像也没有找到什么工具,就想用shell来解决这个问题,无奈shell不精通,只能用shell+java来实现这个功能。
第一步:首先要比较出两个版本之间改变的文件,并把有改变的文件文件路径生成一到一个文件里。这一步我用shell来完成。
这里假设要打796到809后的增量包。把改变的文件路径生成到patchfilepath.txt里面。
svn diff -r 809:796|grep -i Index:|awk -F : '{print $2}' >patchfilepath.txt
第二步用java完成。
第一步:首先要比较出两个版本之间改变的文件,并把有改变的文件文件路径生成一到一个文件里。这一步我用shell来完成。
这里假设要打796到809后的增量包。把改变的文件路径生成到patchfilepath.txt里面。
svn diff -r 809:796|grep -i Index:|awk -F : '{print $2}' >patchfilepath.txt
第二步用java完成。
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 这个类用来把两个版本有变化的文件考到指定的目录下 * 在运行这个类前,应该把要打的版本update下来 * @author Alec * */ public class PackageSVN { public static String configPath = "D:/project/workspace/Test/src/com/yan/config.txt";//版本之间有改变的文件的路径列表 public static String baseDir = "D:/project/workspace/ofbiz-9.4new/";//源文件根目录 public static String destDir = "E:/ofbiz_svn/";//目标文件根目录 public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new FileReader(configPath)); String s = null; while((s = br.readLine()) != null) { s = s.trim();//去掉路径前面的空格 String str = destDir + s; if(!destDir.equals(str)){//过滤空行 copy(s,destDir); } } br.close(); compress("E:/ofbiz_svn","E:/ofbiz_svn/ofbiz_svn20111102.zip"); } private static void copy(String file, String destbaseDir) throws Exception { String srcFile = baseDir + file; String desFile = destDir + file; int lastIndex = desFile.lastIndexOf("/"); String desPath = desFile.substring(0, lastIndex); File srcF = new File(srcFile); if(srcF.exists()){//如果不存在这样的源文件,就不再拷贝,这个用来解决版本之间有删除文件的情况。 File desF = new File(desFile); File desP = new File(desPath); if(!desP.exists()) { desP.mkdirs(); } System.out.println(srcFile); FileInputStream fis = new FileInputStream(srcF); FileOutputStream fos = new FileOutputStream(desF); byte[] buf = new byte[1024]; int len = 0; while((len = fis.read(buf)) != -1) { fos.write(buf,0,len); } fos.flush(); fos.close(); fis.close(); } } /** *//** * 递归压缩文件 * @param source 源路径,可以是文件,也可以目录 * @param destinct 目标路径,压缩文件名 * @throws IOException */ private static void compress(String source,String destinct) throws IOException { List fileList=loadFilename(new File(source)); ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(new File(destinct))); byte[] buffere=new byte[8192]; int length; BufferedInputStream bis; for(int i=0;i<fileList.size();i++) { File file=(File) fileList.get(i); zos.putNextEntry(new ZipEntry(getEntryName(source,file))); bis=new BufferedInputStream(new FileInputStream(file)); while(true) { length=bis.read(buffere); if(length==-1) break; zos.write(buffere,0,length); } bis.close(); zos.closeEntry(); } zos.close(); } /** *//** * 递归获得该文件下所有文件名(不包括目录名) * @param file * @return */ private static List loadFilename(File file) { List filenameList=new ArrayList(); if(file.isFile()) { filenameList.add(file); } if(file.isDirectory()) { for(File f:file.listFiles()) { filenameList.addAll(loadFilename(f)); } } return filenameList; } /** *//** * 获得zip entry 字符串 * @param base * @param file * @return */ private static String getEntryName(String base,File file) { File baseFile=new File(base); String filename=file.getPath(); //int index=filename.lastIndexOf(baseFile.getName()); if(baseFile.getParentFile().getParentFile()==null) return filename.substring(baseFile.getParent().length()); return filename.substring(baseFile.getParent().length()+1); } }
发表评论
-
在xubuntu13.04下安装极点五笔用的平台是ibus
2013-08-06 13:27 1673首先在打开终端下载极点五笔的压缩包 sudo wget ht ... -
手动编译打包执行java类(javac,java,jar使用)
2013-08-06 09:59 26069做一个手动编译打包执行java类例子 首先进入zipCo ... -
查看linux进程内存的使用情况
2013-08-05 10:50 4200要查看linux内存的使用情况,使用free命令 加上-m选项 ... -
linux下zip文件密码破解Fcrackzip
2013-07-30 13:57 23859fcrackzip暴力破解的速度很快, 我是在ubuntu上 ... -
使用ssh-keygen,实现免密码登陆linux
2013-05-28 17:40 1692本机为192.168.1.2 服务器为192.168.1.3 ... -
找出一些数,这些数不管几个相加得到的值或着单个的数都不会重复
2013-03-20 18:00 1614根据linux的权限4(read),2(write),1(x) ... -
joda-time的使用
2013-01-14 21:07 115010Joda-Time Home:http://joda-t ... -
Linux挂载LVM分区的方法
2012-12-15 22:05 2181############################### ... -
如何用硬盘或着多糸统安装fedora17或着ubuntu12.04等
2012-12-15 19:19 1233下面三篇博客,根据这三篇博客可以解决硬盘安装linux糸统或着 ... -
折腾ubuntu12.04时碰到的一些问题以及解决方法记录
2012-09-22 10:40 2274下面会记录一些折腾ubuntu12.0,4的问题以及解决办法, ... -
jpa的学习---jpa demo工程
2012-08-28 09:25 3489这几天糸统的学习了一下jpa,并且跟着网上的视频做了不少练习, ... -
spring整合junit使用记录
2012-08-24 17:31 3149参考地址: [url] http://www.cnblogs. ... -
scheduleAtFixedRate的使用
2012-07-03 09:13 1261schedule和scheduleAtFixedRate的区别 ... -
list转成json对象
2012-06-13 15:41 101248需要的包: 1.commons-lang.jar 2.com ... -
Integer对象比较详记
2012-06-07 15:09 779java Integer类不是java的基本类型所以比较应该这 ... -
java的double类型format
2012-06-07 11:38 1164java的double类型format: ... -
linux关闭防火墙
2011-12-29 12:07 10021) Linux操作系统中永久性生效,重启后不会复原 开启: ... -
Fedora16成功设置静态固定IP(重启后还有效)
2011-12-29 12:03 45981.打开终端,用su切换到超级用户模式,如下: [neo@lo ... -
ubuntu新建用户最好用adduser
2011-12-05 16:45 8969ubuntu建用户最好用adduser,虽然adduser和u ... -
fedora16开机启动服务
2011-12-01 23:16 8832fedora16开机启动ssh Fedora 16 会在 / ...
相关推荐
这个工具的来源: 从事了几年的工作之后,发现在部署服务的时候,总是需要将自己修改的源码编译... 源于上述遇到的问题,综合平时上班所需,开发了这个小工具,简称(svn增量包工具); 希望对各位小伙伴有所帮助
java 写的根据svn信息生成的增量打包工具类,有部分路径和判断条件需要修改,修改正确后可直接执行main方法运行。
你还在为svn打增量包发愁? svn 增量包工具类
svn增量打包小工具,自行配置svn相关的账号、本地代码编译后的路径以及本地svn项目所在的路径。可根据版本号或提交时间查找对于的增量文件,选择性进行增量打包。
项目增量补丁包神器桌面版:全自动web增量打包发版,支持gitee/git/svn,支持多模块项目
分别用shell、dos、perl实现对SVN版本库的增量备份 进行增量备份之前都会进行一次全量备份,以下脚本都分别有增量和全量备份。 一、 shell 本脚本实现了对版本库进行增量备份,并且将备份导入到其它主机版本库,以备...
1. 对svn的变更代码进行增量打包。 2. 会 列出需要打包的文件。
通过svn提交日志查询筛选,导出选定的修改部分,生成增量补丁包
eclipse插件 可打包增量文件,可一键将增量文件更新至测试环境且自动重启 一、使用条件 1、eclipse (eclipse 4.0以上) 2、版本管理用的svn 二、使用方法 1、将下载的jar 放入eclipse\dropins下 2、重启eclipse ...
svnkit插件开发包 包含svn插件jar包
用于svn统计修改代码行数 原博客地址:http://blog.csdn.net/skygpan/article/details/47749891
点击shell脚本 可自动从svn下载项目并打包生成ipa和plist文件
SVN 全备和增量备份脚本,我们公司用的就是我整理的,已实践!!!
SVN代码管理使用 SVN代码管理使用
SVN 代码比较工具 SVN 代码比较工具 SVN 代码比较工具 SVN 代码比较工具
ant 脚本从svn上取代码打包代码全,同时包括相关的jar包
纯java操作svn--svnkit API!
java svn 插件和svn客户端java svn 插件和svn客户端
使用spring boot框架编写的SVN统计代码数量系统,内包含数据库文件,可以直接运行,可以统计项目每个成员提交的代码数量。
svn_patch_update 从本地 svn , Shell 增量更新在线代码