亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

一只斗牛犬 2022-09-14 15:34:17
我需要存儲提交的內容,這將是與例如的區別。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();我知道這在庫中不存在,但必須有一些東西可以將提交的內容放入可以轉換為字符串的內容中
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

代碼已更改為


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


查看完整回答
反對 回復 2022-09-14
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號