gpt4 book ai didi

java - 如何在提交之前 JGit 责备文件?

转载 作者:行者123 更新时间:2023-11-30 02:57:38 25 4
gpt4 key购买 nike

上下文:我的合并遇到了冲突,我有一个像这样的示例的文件:

Foo.txt(已合并)

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

问题:为了让开发人员真正更改了冲突行,如何在提交之前责怪结果文件(上面)?它适用于 git Blame Foo.txt

问题:我尝试执行以下操作,但问题是循环内的 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 ) );
}

至少对于添加到文件的工作目录版本的行,会返回名为尚未提交的作者。

但是,您的代码应该准备好应对 getSourceAuthor() 返回 null 的情况。 JavaDoc 声明返回值可能为 null

关于java - 如何在提交之前 JGit 责备文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com