Java操作Git增量发布

Java操作Git增量发布

引入maven依赖

<dependency>
    <groupId>org.eclipse.jgit</groupId>
    <artifactId>org.eclipse.jgit</artifactId>
    <version>3.5.0.201409260305-r</version>
</dependency>

具体代码:

@Test
public void test3() throws IOException, GitAPIException {
    Repository repository = new FileRepositoryBuilder()
            .setGitDir(new File("/Users/brucexie/Documents/work/.git"))
            .build();

    Git git = new Git(repository);
    DiffCommand diff = git.diff();
    List<DiffEntry> call = diff.call();
    List<String> diffFileList = new ArrayList();
    for (DiffEntry diffEntry : call) {
        String newPath = diffEntry.getNewPath();
        if (newPath.indexOf("/") > 0)
            diffFileList.add(newPath.substring(newPath.lastIndexOf("/") + 1));
        else
            diffFileList.add(newPath);
    }

    System.out.println("变更文件列表如下:");
    diffFileList.stream().forEach(System.out::println);
    System.out.println("\n准备发送文件...\n");
    diffFileList.stream().forEach(item -> {
        try {
            System.out.printf("SCP 开始发送文件 \n %s ... ", item);

            TimeUnit.SECONDS.sleep(1);
            System.out.printf("\n完成发送文件 %s \n", item);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    });

    System.out.println("准备执行dos命令: ");
    System.out.println(run("git status"));

}

public static String run(String command) throws IOException {
    Scanner input = null;
    String result = "";
    Process process = null;
    try {
        process = Runtime.getRuntime().exec(command);
        try {
            //等待命令执行完成
            process.waitFor(10, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        InputStream is = process.getInputStream();
        input = new Scanner(is);
        while (input.hasNextLine()) {
            result += input.nextLine() + "\n";
        }
        result = command + "\n" + result; //加上命令本身,打印出来
    } finally {
        if (input != null) {
            input.close();
        }
        if (process != null) {
            process.destroy();
        }
    }
    return result;
}

执行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值