2009-05-15 6 views

Antwort

10

Dies zeigt sehr gut, wie man es tun Status mit

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

Die Überprüfung mit .GetInfo() ist ein bisschen billiger (io-weise), wenn Sie nur wissen müssen, ob die Datei unter Quellcodeverwaltung ist und nicht, wenn die Datei geändert wird. –

+0

'.Status()' führt einen Dateivergleich durch, wenn die Datei möglicherweise geändert wurde. Im schlimmsten Fall, falls nur das letzte Byte einer 2 GByte Datei geändert wurde, könnte es fast 2 * 2 GByte bedeuten. Mit '.Info()' sind Sie sicher, dass dies nie passiert. –

6

Wenn Sie nur, wenn Sie die Datei unter Quellcodeverwaltung wollen wissen, ist, dass Sie .Info()/.GetInfo() nutzen könnten. Diese Methode ist in der Regel schneller, da nicht überprüft werden muss, ob sich die Datei seit dem Auschecken geändert hat.

+0

'.Status()' führt einen Dateivergleich durch, wenn die Datei verändert wurde. Im schlimmsten Fall, wenn nur das letzte Byte einer 2 GByte Datei geändert wurde, könnte es fast 2 * 2 GByte bedeuten. Mit '.Info()' sind Sie sicher, dass dies nie passiert. –