簡體   English   中英

如何在提交之前將JGit歸咎於文件?

[英]How to JGit blame a file before commit?

上下文:我的合並遇到沖突,並且我有一個類似於以下示例的文件:

Foo.txt (合並)

1
<<<<<< HEAD
2-master
======
2-side
>>>>>> df803849788fde47965b3dc8f07f07d48320ea9c
3

問題:為了使開發人員實際更改了沖突的行,如何在提交之前責怪結果文件(上)? 它適用於git blame Foo.txt

問題:我嘗試執行以下操作,但null內的錯誤為null

MergeResult m = runMerge(aScenario);
BlameCommand blamer = new BlameCommand(git.getRepository());
BufferedReader br =  new BufferedReader(new FileReader(new File(mergedfilepath)));
BlameResult blame = blamer.setFilePath(mergedfilepath).call();
for (int i = 0; (line= br.readLine())!=null ; i++) {
    // the blame at this point is null.
    PersonIdent person = blame.getSourceAuthor(i);
    System.out.println(person.getName() + ": "+ line);
}

我認為遍歷的來源應該是結果的內容。

從那里開始,您可以遍歷更改的區域並要求作者。 例如:

BlameResult blameResult = git.blame().setFilePath( ... ).call();
int size = blameResult.getResultContents().size();
for( int i = 0; i < size; i++ ) {
  System.out.println( blameResult.getSourceAuthor( i ) );
}

至少對於添加到該文件的工作目錄版本中的行,將返回一個名為Not Committed Yet的作者。

但是,應准備好代碼,使之與返回null getSourceAuthor()適應。 JavaDoc聲明返回值可以為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM