2016-12-05 9 views
0

В GitBash git log --name-only -1 дает мне:Как получить «Журнал мерзавец --name только» в libgit2

commit e584beed88a9d005e7066c41b248545ae99f6c2b  
Author: Badgers Paw <[email protected]>  
Date: Thu Dec 1 13:39:03 2016 +0000  
    EEE-9245 - WIP 
Components/BuildTools/BuildTasks.Test/Class1.cs 
Components/BuildTools/BuildTasks.exe 
Components/BuildTools/BuildTasks/Docs/README.txt 
Components/BuildTools/BuildTasks/Program.cs 
Components/BuildTools/BuildTasks/Tasks/Task1.cs 
Components/BuildTools/BuildTasks/Tasks/Task2.cs 

Как я могу получить это в libgit2 или (в идеале) libgit2sharp?

Благодаря

ответ

2

Вы должны запустить диф, чтобы получить список измененных файлов. Для первой записи в журнале это будет git_diff_tree_to_tree между фиксацией HEAD и ее родителем. После запуска diff вы можете игнорировать остальную информацию и печатать только имена файлов.

0

Использование libgit2sharp это:

var parent = commit.Parents.Single(); 
{ 
    foreach (TreeEntryChanges change in repo.Diff.Compare<TreeChanges>(parent.Tree, commit.Tree)) 
     { 
      Debug.WriteLine(change.Path); 
     } 
    } 
}