2015-05-13 25 views
7

yılında taahhüt kaldırıldı eklendi:dosyalar modifiye Get// Ben benim son dosyaları almak bu yöntem, taahhüt ettik LibGit2Sharp

static void GetFiles(Tree t, String dir = "") 
{ 
    foreach (TreeEntry treeEntry in t) 
    { 
     if (treeEntry.TargetType == TreeEntryTargetType.Tree) 
     { 
      Tree tr = repo.Lookup<Tree>(treeEntry.Target.Sha); 
      GetFiles(tr, dir + "/" + treeEntry.Name); 
     } 
     else 
     { 
      string caminho = dir + "/" + treeEntry.Path; 
      arquivos.Add(caminho); 
     } 

    } 
    return; 
} 

Ben this question bir göz yaptım, ama birlikte acemi olduğum C# ve anlamıyorum. Benim yöntemle GetFiles ile

c:/teste 
| - /outros 
| | - octocatblue.txt <- This modified 
| | - octored.txt <- This new 

bu baskı gibi tüm dosyaları ettik: modifiye

c:/teste 
| - octocat.txt 
| - parentoctocat.txt 
| - /outros 
| | - octocatblue.txt 
| | - octored.txt 

Benim son işlemek zorunda bu dosyaları:

bu depoyu var. Yalnızca değiştirilmiş/eklenmiş/kaldırılmış dosyaları nasıl alırsınız?

Program execution


nasıl önceki taahhüt ve farklılığın ağacı alma karşılaştırma alabilirim?


Çözüm

Çünkü bir git ne git mağaza veri dosyası sistemlerinde taahhüt ait
static void CompareTrees() 
{ 
    using (repo) 
    { 
     Tree commitTree = repo.Head.Tip.Tree; // Main Tree 
     Tree parentCommitTree = repo.Head.Tip.Parents.Single().Tree; // Secondary Tree 

     var patch = repo.Diff.Compare<Patch>(parentCommitTree, commitTree); // Difference 

     foreach (var ptc in patch) 
     { 
      Console.WriteLine(ptc.Status +" -> "+ptc.Path); // Status -> File Path 
     } 
    } 
} 

Solution

cevap

4

taahhüt yer alan tüm dosyaların bir anlık görüntüsüdür. Daha sonra Tree nesnesi, deponun tüm dosyalarının durumunu size döndürür.

Bunu ağacının arasındaki diff işlemek ve bir öncekinin ağacı yarıyor olması lazım ve ben Repository.Diff.Compare()

+0

beni benim yöntemini 'GetFiles' değiştirmek yardımcı olabilir o yöntemle yapılması gerektiğini düşünüyorum Bunu yap? – Carlos

İlgili konular