快速从git上提取文件部署清单

快速从git上提取一段时间内提交文件部署清单:

此文章目的是为了快速找出一段时间内所有修改且需要发布的文件清单

步骤:

1、从git上导出一段时间内所有提交文件 2、文件去重 3、 文件排序

示例:

1、 控制台打印出本次修改文件,如果需要新增的话 将for循环里面的判断去掉,控制台打印就好了

	public static void main(String[] args){
	File file = new File("D:\\cms.t3\\log20210911.txt");
	BufferedReader reader = null;
    try {
        reader = new BufferedReader(new FileReader(file));
        System.out.println("读取git提交日志开始......");
        System.out.println();
        
        
        List<String> list = new ArrayList<String>();
        String tempStr;
        while ((tempStr = reader.readLine()) != null) {
        	if(tempStr.trim().equals("commit 8b79f9a1fc2db757c5cce425304fc36e1a3aacc3")) {
        		System.out.println("提交记录读取到7月8日截至,总共行数:" + list.size());
        		System.out.println();
        		break;
        	}
        	
        	list.add(tempStr);
        }
        
        reader.close();
       
        System.out.println("开始对提交的记录去重.....");
        System.out.println();
        
        Map<String, Boolean> map = new HashMap<String, Boolean>();
        for(String item : list) {
        	map.put(item, true);
        }
        
        System.out.println("去重完成,去重之后总行数为:"+ map.size());
        System.out.println();
        
        System.out.println("开始提取WebRoot和src下面的文件");
        System.out.println();
        
        List<String> list2 = new ArrayList<String>();
        for(String item :map.keySet()) {
        	if(item.indexOf("WebRoot")>-1 || item.indexOf("src")>-1) {
        		list2.add(item);
        	}
        }
        
        System.out.println("提取WebRoot和src下面的文件数量:" + list2.size());
        System.out.println("开始打印提取到的文件");
        
        int index=1;
        for(String item : list2) {
        	System.out.println(index + "." +item);
        	index++;
        }
        
        System.out.println("打印提取文件结束....");
        System.out.println();
        
        System.out.println("忽略票据文件夹中的内容...");
        
        System.out.println("忽略WebRoot/invoice");
        System.out.println("忽略WebRoot/page/invoice");
        System.out.println("忽略src/com/invoice");
        System.out.println("忽略src/config/msgTemplates");
        System.out.println("忽略src/config/invoice");
        
        List<String> list3 = new ArrayList<String>();
        for(String item : list2) {
        	if(item.indexOf("WebRoot/invoice")>-1) {
    			continue;
    		}
    		
    		if(item.indexOf("src/com/invoice")>-1) {
    			continue;
    		}
    		
    		if(item.indexOf("src/config/msgTemplates")>-1) {
    			continue;
    		}
    		
    		if(item.indexOf("src/config/invoice")>-1) {
    			continue;
    		}
    		
    		if(item.indexOf("WebRoot/page/invoice")>-1) {
    			continue;
    		}
    		
    		list3.add(item);
        }
        
        System.out.println("忽略之后文件剩余:" + list3.size());
        System.out.println();
        
        
        System.out.println("打印剩余文件.....");
        
        Collections.sort(list3, new Comparator<String>() {
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        
        for(int i=0,j=list3.size();i<j;i++) {
        	System.out.println((i+1) + "." +list3.get(i));
        }
        
        
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}

2、 除了去重其它和上面类似

public static void main(String[] args) throws IOException {
	File file = new File("D:\\git\\T3\\20210901\\log20210910001.txt");

	BufferedReader reader = null;

	reader = new BufferedReader(new FileReader(file));
	Map<String, Boolean> map = new HashMap<String, Boolean>();
	String tempStr;
	while ((tempStr = reader.readLine()) != null) {
		if(tempStr.indexOf("src")>-1 || tempStr.indexOf("WebRoot")>-1)
			map.put(tempStr, true);
	}
	reader.close();
	List<String> com = new ArrayList<>();
	List<String> uncom = new ArrayList<>();
	List<String> page = new ArrayList<>();
	for(String item : map.keySet()) {
		// 忽略部分目录,如本次新增
		if(item.contains("src/com/invoice")||item.contains("#")
				||item.contains("WebRoot/page/invoice")||item.contains("src/config/invoice")
				){
			continue;
		}
		if(item.contains("com")){
			com.add(item);

		}else if(item.contains("page")){
			page.add(item);
		}else {
			uncom.add(item);
		}
	}
	System.out.println(com.toString());
	System.out.println(page.toString());
	System.out.println(uncom.toString());
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值