2009-05-15 19 views

risposta

10

Questo dimostra molto bene come farlo usando lo stato

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

Il controllo con .GetInfo() è un po 'più economico (io-saggio) se è necessario sapere solo se il file si trova sotto il controllo del codice sorgente e non se il file viene modificato. –

+0

'.Status()' eseguirà un confronto tra file se il file potrebbe essere stato modificato, quindi, nel caso peggiore nel caso in cui solo l'ultimo byte di un file da 2 GB è stato modificato, potrebbe quasi leggere 2 * 2 GB per determinarlo. Con '.Info()' sei sicuro che questo non accada mai. –

6

Se desideri solo sapere se il file è sotto il controllo di origine è possibile utilizzare .Info()/.GetInfo(). Questo metodo è generalmente più veloce in quanto non deve controllare se il file è cambiato da quando è stato estratto.

+0

'.Status()' eseguirà un confronto di file se il file potrebbe essere stato modificato, quindi nel caso peggiore nel caso in cui solo l'ultimo byte di un file da 2 GB sia stato modificato potrebbe quasi leggere 2 * 2 GB per determinarlo. Con '.Info()' sei sicuro che questo non accada mai. –

Problemi correlati