JGit - 提交到字符串中的内容

我需要存储提交的内容,这将是与例如的区别。master 到最新提交的字符串。


如何使用 JGit 显示提交之间的更改底部的答案与我想要的非常相似


这是来自链接的代码


RevCommit headCommit = getHeadCommit(repository);

    RevCommit diffWith = headCommit.getParent(0);

    FileOutputStream stdout = new FileOutputStream(FileDescriptor.out);

    try (DiffFormatter diffFormatter = new DiffFormatter(stdout)) {

        diffFormatter.setRepository(repository);

        for (DiffEntry entry : diffFormatter.scan(diffWith, headCommit)) {

            diffFormatter.format(diffFormatter.toFileHeader(entry));

        }

    }

diffFormatter.format(diffFormatter.toFileHeader(entry));

format() 方法是 void,并且似乎没有办法返回字符串或某种输出流。


我希望有一些类似的东西


String commitDiff = diffFormatter.getCommitContents(entry).toString();

我知道这在库中不存在,但必须有一些东西可以将提交的内容放入可以转换为字符串的内容中


一只斗牛犬
浏览 122回答 1
1回答

四季花海

代码已更改为OutputStream output = new OutputStream() {    private StringBuilder string = new StringBuilder();    @Override    public void write(int b) throws IOException {        this.string.append((char) b );    }    public String toString(){        return this.string.toString();    }};RevCommit headCommit = getHeadCommit(repository);RevCommit diffWith = headCommit.getParent(0);try (DiffFormatter diffFormatter = new DiffFormatter(output)) {    diffFormatter.setRepository(repository);    for (DiffEntry entry : diffFormatter.scan(diffWith, headCommit)) {        diffFormatter.format(diffFormatter.toFileHeader(entry));    }String strings = output.toString();System.out.println(strings);这是一条很长的路,但它证明了它可以做到 这现在已经将差异存储到字符串中strings
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java