2

对于一个项目,我需要获取一个 git commit Id 列表(几千个),并一次比较它们两个,将返回的特定信息保存到文件中。我遇到的唯一问题是让 diff 命令在 Java 中工作。我花了几个小时试图解决这个问题,但我仍然需要帮助。

4

1 回答 1

2

您可以使用以下命令运行命令并获取其结果:

    ProcessBuilder processBuilder = new ProcessBuilder(command);
    processBuilder.redirectErrorStream(true);
    Process process = processBuilder.start();
    String output = readOutput(process);
    try {
        if (process.waitFor() != 0) {
            throw new IOException(
                "command exited in error: " + process.exitValue()
                    + "\n" + output);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return output;

因此,您只需为您的问题定义最适合的“git diff ...”命令并解析输出。

于 2012-06-07T15:04:05.147 回答