Hallo ich benutze C# und SharpSvn-Bibliothek. Ich möchte überprüfen, ob die Datei unter Quellcodeverwaltung steht, bevor Sie sie mit SvnClient.Add hinzufügen. Wenn ich es in der Datei mache, die bereits unter SVN ist, bekomme ich einen Fehler: "ist bereits unter Versionskontrolle".Wie überprüft man, ob die Datei in SharpSvn unter Quellcodeverwaltung steht?
10
A
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));
}
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. –
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. –
'.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. –