2009-06-12 4 views
11

Estoy usando SharpSvn para interactuar con mi repositorio svn a través del código C#. Estoy usando este código para recuperar entradas de registro de SVN:Usando SharpSvn para recuperar entradas de registro dentro de un rango de fechas

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; 
} 

Esto funciona bien, pero ahora quiero para restringir las entradas de registro devuelto por fecha de revisión. Esto es algo que se puede hacer a través de la línea de comandos svn con algo como

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

Me parece que no puede averiguar una capacidad paralela dentro SharpSvn. ¿Alguien me puede apuntar en la dirección correcta?

Respuesta

24

Usted puede tratar de esta manera:

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

Gracias! Eché de menos el hecho de que SvnRevision podría tomar un DateTime en su constructor. –

4

I piensan que podría ser capaz de hacerlo usando una de las funciones GetLog que toma un parámetro SharpSvn.SvnLogArgs.

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

Esa clase tiene Start/End que son objetos que SharpSvn.SvnRevision mirada como que pueden tomar un parámetro de "tiempo".

Solo he hecho un poco con eso, pero ahí es donde podrías empezar a buscar.

Cuestiones relacionadas