2009-03-25 13 views

cevap

17

SharpSvn kullanma:

using(SvnClient client = new SvnClient()) 
{ 
    Collection<SvnLogEventArgs> list; 

    // When not using cached credentials 
    // c.Authentication.DefaultCredentials = new NetworkCredential("user", "pass")l 

    SvnLogArgs la = new SvnLogArgs { Start = 128, End = 132 }; 
    client.GetLog(new Uri("http://my/repository"), la, out list); 

    foreach(SvnLogEventArgs a in list) 
    { 
     Console.WriteLine("=== r{0} : {1} ====", a.Revision, a.Author); 
     Console.WriteLine(a.LogMessage); 
    } 
} 
+1

Merhaba, ve son revizyonun nasıl hesaplanır? –

5

Kullanmak için bir C# SVN API'sı bulmanız gerekir. Hızlı bir Google araması bulundu SharpSVN.

belirli revizyon Bir süre önce buna benzer bir şey yaptık

SvnClient client = new SvnClient(); 
SvnUriTarget uri = new SvnUriTarget("url", REV_NUM); 

string message, author; 
client.GetRevisionProperty(uri, "svn:log", out message); 
client.GetRevisionProperty(uri, "svn:author", out author); 
+0

Adında SVN bulunan bazı kitaplıklar olduğunu biliyorum, ancak bunu daha önce yapan birinden nasıl yapacağımı bilmek istiyorum. –

3

için mesaj ve yazar almak için, belirli depo bildirimi taahhüt gerekli.

Bunu yapmak için SubversionNotify kullanarak bitti. Kodlara bir göz atabilir ve ne kullanabileceğinizi görebilirsiniz.

SubversionNotify'ın svnlook'dan çıktı aldığını düşünüyorum. Svnlook, aradığınız şeyi alabileceğiniz birkaç argümana sahiptir.

Eğer revizyon numarası ve depo biliyorsanız:

 
svnlook info -r [rev#] /path/to/repo 

, size Zaman Damgası Kullanıcıyı net mesaj uzunluğunu Log Will ve günlük mesaj kendisi:

 
bob 
2009-03-25 11:10:49 -0600 (Wed, 25 Mar 2009) 
19 
Did stuff with things.