2009-06-12 12 views
11

C# kodumla svn deposumla etkileşimde bulunmak için SharpSvn kullanıyorum.Bir tarih aralığındaki günlük girişlerini almak için SharpSvn'i kullanma

Collection<SvnLogEventArgs> logitems; 
var uri = new Uri("http://myserver/svn/foo/bar.txt"); 
client.GetLog(uri, out logitems); 
foreach (var logentry in logitems) 
{ 
    string author = logentry.Author; 
    string message = logentry.LogMessage; 
    DateTime checkindate = logentry.Time; 
} 

Bu iyi çalışıyor, ama şimdi revizyon tarihe göre döndürülen günlük girişlerini kısıtlamak istiyorum: Ben svn günlük girdilerini almak için bu kodu kullanıyorum. Bu

svn log "http://myserver/svn/foo/bar.txt" --revision {2008-01-01}:{2008-12-31} 

Ben SharpSVN içinde paralel bir yetenek anlamaya gibi olamaz gibi bir şeyle svn komut satırı üzerinden yapılabilir bir şeydir. Birisi bana doğru yönde işaret edebilir mi?

cevap

24

Böyle deneyebilirsiniz:

DateTime startDateTime = // ...; 
DateTime endDateTime = // ...; 
SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime)); 
client.GetLog(uri, new SvnLogArgs(range), out logitems); 
+0

Teşekkür! SvnRevision'un kurucusunda bir DateTime alabileceği gerçeğini özledim. –

4

'u düşünün SharpSvn.SvnLogArgs parametresini kullanan GetLog işlevini kullanarak bunu yapabilirsiniz.

public bool GetLog(System.Uri target, SharpSvn.SvnLogArgs args, 
     out System.Collections.ObjectModel.Collection logItems) 

O sınıf bir "zaman" parametresi alabilir gibi bakmak SharpSvn.SvnRevision nesneler olduğunu Start/End sahiptir.

Sadece biraz yaptım, ama bakmaya başladığınız yer burası olurdu.

İlgili konular