2010-06-23 25 views
5

Dışarıdaki bazı düzeltmelerdeki dosyaları almak için Export() üye işlevini kullanıyorum, ancak bazı durumlarda neden değil. Değiştirilen tüm yollar için çalışıyor gibi görünüyor, ancak silinen ve bazen eklenen dosyalar ile bu revizyonda kullanılan url'de dosya bulunmadığını belirten bir istisna yapıyorum. TurtoiseSVNs "Revizyonu kopyala ..." yı bu yollarda kullandığımda, gayet iyi çalışıyor ve sadece SharpSVN ile bir şeyi kaçırıp kaçırmadığımı merak ediyorum, değiştirilen tüm dosyaların revizyonundaki tüm versiyonları istiyorum. Heres kodumun genel fikri:SharpSVN SvnClient.Export (...) neden her zaman olması gereken dosyaları bulamıyor?

if (logentry.ChangedPaths != null) 
{ 
    foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths) 
    { 
     SvnExportArgs ex = new SvnExportArgs(); 
     ex.Revision = revisionNum; 
     client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex); 
    } 
} 

Herhangi bir yardım veya öneriniz için teşekkür ederiz.

cevap

2

Sadece SvnExportArgs ile bir SvnUriTarget kullanarak doğru bilgiyi elde etmeme izin verdiğini buldum. Neden farklı olduklarından emin değil ama işe yarıyor.

böylece yerine I yukarıda İhracat kullandı: buldum

client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex); 

cevap link text

2

komut satırı istemcisi aynı davranışa sahip oldu. Neler oluyor, bir dosyaya işaret eden URL'ler gelip gidebilir. Bu, eski bir URL'yi kullanmak istediğinizi belirtmediğiniz sürece, şimdi silinen bir dosyayı işaret eden URL'nin geçersiz olduğu anlamına gelir. Buna peg revizyonu denir.

svnbook'ta peg revisions hakkında bilgi edinin.

İlgili konular