2009-05-15 6 views

Respuesta

10

Esto demuestra bastante bien cómo hacerlo utilizando el estado

using(SvnClient client = new SvnClient()) 
{ 
    SvnStatusArgs sa = new SvnStatusArgs(); 
    sa.Depth = SvnDepth.Empty; // Adjust this to check direct files, or (recursive) directories etc 

    Collection<SvnStatusEventArgs> statuses; 
    client.GetStatus("c:\\somefile.txt", sa, out statuses); 

    Assert.That(statuses.Count, Is.EqualTo(1)); 
    Assert.That(SvnStatus.NotVersioned, Is.EqualTo(statuses[0].LocalContentStatus)); 
} 
+3

Verificar con .GetInfo() es un poco más barato (io-wise) si solo necesita saber si el archivo está bajo control de fuente y no si el archivo se modifica. –

+0

'.Status()' hará una comparación de archivos si el archivo pudo haber sido modificado, por lo que en el peor de los casos, si solo se modificó el último byte de un archivo de 2 GByte, podría casi leer 2 * 2 GByte para determinarlo. Con '.Info()' estás seguro de que esto nunca sucede. –

6

Si sólo desea saber si el archivo está bajo control de código fuente que podría utilizar .Info()/.GetInfo(). Ese método es generalmente más rápido, ya que no tiene que verificar si el archivo ha cambiado desde que se desprotegió.

+0

'.Status()' hará una comparación de archivos si el archivo pudo haber sido modificado, por lo que en el peor de los casos, si solo se modificó el último byte de un archivo de 2 GByte, casi podría leer 2 * 2 GByte para determinarlo. Con '.Info()' estás seguro de que esto nunca sucede. –

Cuestiones relacionadas