- 浏览: 1281605 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 1725首先在打开终端下载极点五笔的压缩包 sudo wget ht ... -
手动编译打包执行java类(javac,java,jar使用)
2013-08-06 09:59 26127做一个手动编译打包执行java类例子 首先进入zipCo ... -
查看linux进程内存的使用情况
2013-08-05 10:50 4257要查看linux内存的使用情况,使用free命令 加上-m选项 ... -
linux下zip文件密码破解Fcrackzip
2013-07-30 13:57 24059fcrackzip暴力破解的速度很快, 我是在ubuntu上 ... -
使用ssh-keygen,实现免密码登陆linux
2013-05-28 17:40 1775本机为192.168.1.2 服务器为192.168.1.3 ... -
找出一些数,这些数不管几个相加得到的值或着单个的数都不会重复
2013-03-20 18:00 1663根据linux的权限4(read),2(write),1(x) ... -
joda-time的使用
2013-01-14 21:07 115181Joda-Time Home:http://joda-t ... -
Linux挂载LVM分区的方法
2012-12-15 22:05 2226############################### ... -
如何用硬盘或着多糸统安装fedora17或着ubuntu12.04等
2012-12-15 19:19 1281下面三篇博客,根据这三篇博客可以解决硬盘安装linux糸统或着 ... -
折腾ubuntu12.04时碰到的一些问题以及解决方法记录
2012-09-22 10:40 2321下面会记录一些折腾ubuntu12.0,4的问题以及解决办法, ... -
jpa的学习---jpa demo工程
2012-08-28 09:25 3526这几天糸统的学习了一下jpa,并且跟着网上的视频做了不少练习, ... -
spring整合junit使用记录
2012-08-24 17:31 3202参考地址: [url] http://www.cnblogs. ... -
scheduleAtFixedRate的使用
2012-07-03 09:13 1319schedule和scheduleAtFixedRate的区别 ... -
list转成json对象
2012-06-13 15:41 101336需要的包: 1.commons-lang.jar 2.com ... -
Integer对象比较详记
2012-06-07 15:09 821java Integer类不是java的基本类型所以比较应该这 ... -
java的double类型format
2012-06-07 11:38 1212java的double类型format: ... -
linux关闭防火墙
2011-12-29 12:07 10451) Linux操作系统中永久性生效,重启后不会复原 开启: ... -
Fedora16成功设置静态固定IP(重启后还有效)
2011-12-29 12:03 46901.打开终端,用su切换到超级用户模式,如下: [neo@lo ... -
ubuntu新建用户最好用adduser
2011-12-05 16:45 9027ubuntu建用户最好用adduser,虽然adduser和u ... -
fedora16开机启动服务
2011-12-01 23:16 8900fedora16开机启动ssh Fedora 16 会在 / ...
相关推荐
java 写的根据svn信息生成的增量打包工具类,有部分路径和判断条件需要修改,修改正确后可直接执行main方法运行。
【svn增量打包小工具】是一种基于Java开发的实用程序,专为IT专业人士设计,用于高效地管理和打包在Subversion(svn)版本控制系统中的代码更改。这个小工具的主要目的是简化版本控制过程,特别是在处理大型项目时,...
"JAVA增量包打包工具"就是针对这一需求而设计的专业桌面应用程序,旨在帮助开发者实现自动化、高效的Web项目增量打包和发布。这款工具支持多种版本控制系统,包括Gitee(国内的Git托管平台)、Git和SVN,为多模块...
这个工具的来源: 从事了几年的工作之后,发现在部署服务的时候,总是需要将自己修改的源码编译... 源于上述遇到的问题,综合平时上班所需,开发了这个小工具,简称(svn增量包工具); 希望对各位小伙伴有所帮助
你还在为svn打增量包发愁? svn 增量包工具类
【标题】"JAVA编写SVN统计代码数量系统"是一个基于Spring Boot框架的项目,用于统计在Subversion(SVN)版本控制系统中的代码提交情况。它能够详细地分析每个团队成员在SVN仓库中的代码贡献量。 【核心知识点】: ...
总结来说,"svn日志导出增量补丁工具"是一个能够帮助开发者高效管理和分发代码更改的实用工具。它结合了svn的日志查询与差异比较功能,生成只包含所需更改的补丁包,从而减少了网络传输的负担,提高了开发效率。通过...
用java代码下载svn上的项目,包含svnkit的jar包,可以根据版本号下载项目,同路径下会删除原来下载过的项目。
本篇文章将详细介绍一个使用Java编写的工具,该工具能够统计SVN中的代码修改情况。 首先,我们需要理解SVN的工作原理。Subversion是一个分布式版本控制系统,用于管理文件和目录的变更历史。通过记录每个文件的每次...
eclipse插件 可打包增量文件,可一键将增量文件更新至测试环境且自动重启 一、使用条件 1、eclipse (eclipse 4.0以上) 2、版本管理用的svn 二、使用方法 1、将下载的jar 放入eclipse\dropins下 2、重启eclipse ...
SVNKit是一款纯Java实现的Subversion(SVN)客户端库,它允许开发者在Java应用程序中直接集成SVN功能,无需依赖任何本地SVN客户端。这个压缩包提供的"svnkit-1.10.6"是SVNKit的一个版本,包含了支持Java开发的SVN...
首先,需要使用SVN插件在Eclipse中生成补丁文件,然后通过Java代码或Ant脚本将补丁文件应用于项目中,实现自动化增量打包。 生成增量补丁文件的方法有两种,一种是使用Ant脚本,另一种是使用纯Java代码。使用Ant...
Java操作SVN将资源下载...总之,通过使用Java和SVNKit库,你可以编写自定义的脚本来自动化从SVN仓库下载资源到服务器的任务,从而提高开发效率和自动化程度。记得在使用过程中遵循最佳实践,确保代码的稳定性和安全性。
本篇文章将深入探讨“增量打包代码”的概念、实现方式以及其在版本控制(如SVN)中的应用。 首先,我们要理解“增量打包”的核心思想。增量打包是基于版本控制系统(如SVN、Git等)的变更记录来确定哪些文件发生了...
Subversion (SVN) 是一个广泛使用的版本控制系统,被众多开发团队用于管理源代码。在实际应用中,为了确保数据的安全性和系统的稳定性,通常需要对 SVN 仓库进行备份。本文将详细介绍如何在 Linux 系统下使用 SVN ...
### SVN全量与增量备份脚本详解 #### 一、背景介绍 在软件开发过程中,版本控制系统如Subversion (SVN) 是不可或缺的工具之一。它不仅帮助团队管理代码版本,还提供了强大的备份机制来确保数据的安全性。本文将...
本文将详细阐述如何结合Subversion (SVN)、Maven和Shell脚本来实现代码的自动发布。 **Subversion (SVN)** 是一个版本控制系统,用于跟踪和管理项目源代码的变化。在自动部署的场景中,SVN主要用于存储和更新项目...
利用svnkit操作svn,实现对版本修改文件的导出,可以导出多个版本,.java文件将会在本地取出.class文件,导出后压缩成压缩包,主要用于服务器上的资源更新,不需要开发人员去找到对应的.class文件或其他文件压缩然后...
Java 实现 SVN 更新和提交是基于版本控制系统 Subversion(简称 SVN)进行的,它主要用于团队协作中的代码管理和版本控制。Subversion 提供了多种接口,包括命令行工具、图形界面工具以及 API,使得开发者能够在各种...
标题中的“根据提交日志增量发布包”是指在软件开发过程中,通过跟踪代码库(如Git或SVN)中的提交历史,识别出自上次发布以来发生变化的代码文件,然后只打包这些变化的部分,形成一个相对较小的更新包,用于部署到...