Wie schwer ist es, ein Repository mit c# zu erstellen? Was ist mit der Anzeige einer Quellcodedatei oder eines Diffs in einer Webanwendung?
Gibt es eine API, in die ich mich einklinken muss, oder muss ich nur eigenen Code schreiben?
Wie schwer ist es, ein Repository mit c# zu erstellen? Was ist mit der Anzeige einer Quellcodedatei oder eines Diffs in einer Webanwendung?
Gibt es eine API, in die ich mich einklinken muss, oder muss ich nur eigenen Code schreiben?
SharpSVN bietet Ihnen eine vollständige API. Sie ist nicht so einfach zu benutzen und im Allgemeinen recht langsam, es sei denn, Sie speichern die zurückgegebenen Elemente im Cache.
SharpSvn ist eine Bindung der Subversion Client API für .Net 2.0 Anwendungen, die in einem Satz von xcopy-verteilbaren dll's. Bemerkenswerte Benutzer dieser API sind (zu diesem Zeitpunkt):
- AnkhSVN 2.X - Subversion-Unterstützung für Visual Studio 2005 und 2008
- CollabNet Desktop für Visual Studio
- SharpDevelop (#develop)
- MonoDevelop
- SVN-Monitor
- Und viele, viele andere Projekte.
Hier ist ein Beispiel aus einem ASP.NET-Projekt, das ich zu etwa 50 % fertiggestellt habe und das alle Elemente aus einem Repository anzeigt:
using (SvnClient client = new SvnClient())
{
client.LoadConfiguration(Server.MapPath("/"));
SvnUriTarget target = new SvnUriTarget("http://wush.net/svn/yourusername/", SvnRevision.Head);
SvnListArgs args = new SvnListArgs();
Collection<SvnListEventArgs> svnList = new Collection<SvnListEventArgs>();
client.Authentication.DefaultCredentials = new NetworkCredential("username", "password);
args.Depth = SvnDepth.Children;
client.GetList(target, args, out svnList);
foreach (var item in svnList)
{
// display the list
}
}
Nun, das SVN-Projekt bietet keine direkte Unterstützung für C# (oder das .NET-Framework), da .NET nicht wirklich plattformübergreifend ist. Es gibt C Bindings und ich bin kürzlich auf ein Open Source C# Bindings Projekt gestoßen. Vielleicht möchten Sie einen Blick darauf werfen Subersion Sharp . Es scheint, dass es das meiste von dem, was Sie interessiert, unterstützt.
Hier ist ein Zitat von der Website:
SubversionSharp ist ein C#-Wrapper, der die Client-API von Subversion SCM vollständig abdeckt. Einfacher Zugriff auf die Subversion-API wird ohne Kompromisse bei der Funktionalität bereitgestellt. Diese Bibliothek ist der Ausgangspunkt für die einfache Integration von Subversion-Repositories in jede .NET-verwaltete Software. Diese C# Bindungen für Subversion wurden im Hinblick auf Portabilität und Leistung geschrieben. Diese Bibliothek ist jetzt sowohl für Mono/Linux- als auch für .NET/Windows-Umgebungen verfügbar.
Und in der Tat werden Sie wahrscheinlich interessiert sein an der SVN.NET-Zweig da es .NET 2.0 unterstützt, während SubervsionSharp dies nicht tut. Natürlich, wenn Sie mit einer neueren Version von .NET 3.0/3.5 entwickeln, sollten Sie in der Lage sein, den Quellcode zu erhalten und kompilieren Sie es auf die neueren Versionen Ziel.
Ich habe mich neulich aus ähnlichen Gründen damit befasst, wurde aber wegen anderer vorrangiger Arbeiten ein wenig abgelenkt.
Es gibt eine Reihe von C#-Schnittstellen zur Subversion-Client-API SubversionSharp y SVN.net . Die Erstellung von Repos wird jedoch von der Server-Api abgedeckt. Sie könnten nur diesen Teil ausführen und den Rest über die API abwickeln
SharpSVN scheint eine der aktivsten APIs zu sein, die beiden anderen - SubversionSharp und SVN.NET - haben sich seit Monaten nicht verändert (ich glaube, sie haben irgendwann "fusioniert", ersteres ist definitiv out).
Sie hat außerdem den Vorteil, dass sie von CollabNet stammt, was sie am "offiziellsten" und wahrscheinlich auch am zuverlässigsten macht.
Wenn Sie Unterstützung für mehrere Plattformen, mit Mono, müssen Sie überprüfen, obwohl, vor einem Jahr war es nicht vollständig portabel, vor allem in Bezug auf die Authentifizierung Callbacks.
Ich habe eine .net-Anwendung geschrieben, die svn ausgiebig nutzt, und kann sagen, dass man die Bindungen überhaupt nicht braucht.
Sie sind schwieriger zu benutzen und nicht auf dem neuesten Stand - neue svn-Versionen kommen fast alle paar Monate heraus und es ist schwer, auf dem Laufenden zu bleiben. Es ist auch schwieriger, neue Versionen der Bindungen weiterzugeben, wenn sie schließlich herauskommen.
In den meisten Fällen würde es ausreichen, svn.exe und svnadmin.exe aufzurufen. Beides sind nicht-interaktive Werkzeuge und solange Sie alle benötigten Parameter angeben, ist alles in Ordnung.
Wenn Sie nicht VIELE svn-Operationen ausführen müssen, wählen Sie die Kommandozeilen-Tools - rufen Sie sie von Ihrer .NET-Anwendung/Website aus auf.
Ein weiterer Vorteil ist, dass Sie sich nicht um x86/x64-Probleme kümmern müssen - wenn Sie die Bindungen verwenden, müssen Sie sicherstellen, dass die Kombination aus der svn dll, Ihrem Programm und dem Betriebssystem übereinstimmt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.