2009-03-25 16 views

Respuesta

17

Usando SharpSvn:

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

Hola, y cómo obtener el número de la última revisión? –

5

Necesitará encontrar una API C# SVN para usar. Una búsqueda rápida en Google encontró SharpSVN.

Para conocer el mensaje y autor de la revisión específica

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

Sé que hay algunas bibliotecas con SVN en su nombre, pero lo que me gustaría saber cómo hacer esto es de alguien que lo haya hecho antes. –

3

que he hecho algo similar a esto un tiempo atrás, necesitábamos notificación de cierta repositorio se compromete.

Terminé usando SubversionNotify para hacer esto. Puede echar un vistazo al código y ver qué puede usar.

Creo que SubversionNotify está obteniendo resultados de svnlook. Svnlook tiene bastantes argumentos que pueden obtener lo que estás buscando.

Si conoce el número de revisión y el repositorio:

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

que le reporte el usuario, fecha y hora, Log longitud del mensaje y el propio mensaje de registro:

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