Контекст: Моего слияние побежало в конфликты и у меня есть файл, как этот пример:Как JGit обвинить файл перед фиксацией?
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);
}
Извините, но я не вижу реальной разницы с моим фактическим решением, кроме того, что я создал переменную для хранения содержимого строки. Если '...' означает путь к файлу, это то, что хранится в моем «объединенном файле». Я проверил путь к файлу, и это правильно. Я использовал ваш фрагмент кода и получил то же значение «null». –
В какой строке возвращается «null»? –
'BlameCommand.call()' возвращает 'null'. –