2017-01-11 4 views
0

Wie kann ich Dateien abrufen, die Teil des allerersten (initialen) Commits eines Repositorys waren?Libgit2Sharp: Dateien abrufen, die dem ersten (ersten) Commit zugeordnet sind

Ich verwende derzeit Folgendes, um Dateien zu finden, die Teil eines Commits sind (und es funktioniert). Da die Methode jedoch zwei Parameter benötigt, was muss ich übergeben, um die Dateien zu erhalten, die Teil des ersten Commits sind? Oder gibt es eine andere Methode, die ich verwenden muss?

repo.Diff.Compare<TreeChanges>(repo.Commits.ElementAt(i).Tree, repo.Commits.ElementAt(i + 1).Tree) 

Vielen Dank!

Antwort

0

konnte ich meine Anforderung erreichen im Anschluss an die Verwendung von:

    //The tree object corresponding to the first commit in the repo 
        Tree firstCommit = repo.Lookup<Tree>(repo.Commits.ElementAt(i).Tree.Sha); 
        //The tree object corresponding to the last commit in the repo 
        Tree lastCommit = repo.Lookup<Tree>(repo.Commits.ElementAt(0).Tree.Sha); 


        var changes = repo.Diff.Compare<TreeChanges>(lastCommit, firstCommit); 
        foreach (var item in changes) 
        { 
         if (item.Status != ChangeKind.Deleted) 
         { 
          //...This object (i.e. item) corresponds to a file that was part of the first (initial) commit... 
         } 
        } 

Lassen Sie mich wissen, ob es ein besserer Weg ...

0

Sie ein Diff zwischen dem ursprünglichen Baum leicht nehmen und einem Nullbaum zum Abfangen der Dateien:

foreach (TreeEntryChanges change in repo.Diff.Compare<TreeChanges>(null, commit.Tree)) 
{ 
    Console.WriteLine("\t{0} :\t{1}", change.Status, change.Path); 
} 
Verwandte Themen