2016-12-05 3 views
0

In GitBash git log --name-only -1 gibt mir:Wie erhalte ich "git log --name-only" in 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 

Wie kann ich das bekommen in libgit2 oder (im Idealfall) libgit2sharp?

Dank

Antwort

2

Sie haben ein diff ausführen, um die Liste der geänderten Dateien zu erhalten. Für den ersten Log-Eintrag wäre es git_diff_tree_to_tree zwischen dem HEAD Commit und seinem Elternteil. Nachdem Sie das Diff ausgeführt haben, können Sie den Rest der Information ignorieren und nur den Namen der Dateien ausdrucken.

0

libgit2sharp diese Verwendung ist:

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