2009-07-03 3 views
2

Im Grunde mache ich in letzter Zeit viel mit Visual Studio und auf der Suche nach einem einfachen Versionskontrollsystem, das ich selbst hosten könnte, dachte ich mir: Wie schwierig könnte es tatsächlich sein, ein VCS zu schreiben, das nur unterstützt die Visual Studio-Schnittstelle? (Und die nur von einer Person benutzt wird ...) (Und die auf meiner eigenen Website als Web-Service oder was auch immer gehostet wird.)Wo finde ich Informationen zum Schreiben eines Versionskontrollsystems, das in Visual Studio integriert ist?

Nein, ich bin nicht ein Anfänger. Ich programmiere seit über 30 Jahren, also ja, ich weiß, dass es selbst für einen erfahrenen Entwickler schwierig sein würde. Ich mag die Herausforderung einfach. Und ja, ich könnte einfach eine der vielen vorhandenen Lösungen verwenden, aber manchmal macht es einfach Spaß das Rad neu zu erfinden. Es ist mehr eine Herausforderung für meine Fähigkeiten als etwas, das ich wirklich brauche. Nur üben, das könnte sich als sehr nützlich erweisen.

Also, um zu beginnen, brauche ich eine gute Definition, wie Visual Studio 2008 mit einem Versionskontrollsystem kommuniziert. Das Schreiben von Code ist der einfache Teil. Zu wissen, was es tun muss, ist was ich wissen muss.

Also, irgendwelche nützliche Tipps, Tipps und Links?

Antwort

5

MSDN enthält einen Abschnitt in der Visual Studio SDK-Dokumentation unter how to create a source code control plugin. Dies sollte Ihnen geben, was VS von dem Plugin erwartet.

Viel Spaß.

+0

Schließlich postet jemand etwas, das eine Antwort auf die gestellte Frage ist, anstatt das Poster zu klopfen, um dies trotz der gegebenen Erklärung zu versuchen! –

+0

Gute Antwort! Mit diesen Informationen kann ich jetzt beginnen, die ersten Entwürfe zu erstellen und zu bestimmen, was es mindestens enthalten muss. Ich erwarte jetzt nicht, Code zu schreiben. Ich muss jetzt anfangen, die Client-Schnittstelle zu studieren und dann einige mögliche Designs zu zeichnen. Ich frage mich jetzt auch, wie ich das bei einer Google-Suche vermisst habe. :-) –

2

Linus Torvalds schrieb anscheinend Git über paar Wochen. Es ist verantwortlich für die Verwaltung des Linux-Kernel-Quell-Repository.

Ich kann jedoch nicht genug iterieren, dass Sie ein vorhandenes Versionskontrollsystem viel besser lernen würden. Die Anzahl der Features ist von unschätzbarem Wert.

Schließlich können Sie lokale Repositories für Subversion verwenden, so dass Sie es ohne Probleme "selbst hosten" können. Es gibt viele visuelle SVN-Schnittstellen für Windows, wenn das Ihr Hang-up ist.

+4

Um ehrlich zu sein: Git brauchte viel länger als ein paar Wochen, um in einen Zustand zu kommen, in dem der durchschnittliche Programmierer es auch benutzen könnte. Die ersten Versionen wurden ziemlich genau mit einer Zielgruppe von genau 1 geschrieben ;-) –

+2

Ich habe versucht, mich zu unterstützen, bevor ich seine Träume zerquetschte. – Nolte

+0

Ich denke, du verpasst den Punkt. Er möchte ein interessantes, herausforderndes Projekt zum Spaß machen. Es ist der Prozess, nicht das Produkt, für das er sich hauptsächlich interessiert. – tvanfosson

3

Ich glaube, Sie versuchen, zwei Dinge auf einmal zu tun:

  • ein neues Versionskontrollsystem
  • erzeugen eine Schnittstelle zu Vistual Studio für das VCS

produzieren würde ich halten Sie sich an eine Aufgabe zu einer Zeit, da beide wahrscheinlich mehrjährige Projekte alleine sind.

Wenn Sie also ein gutes, selbst-hostbares VCS erhalten möchten, das Ihrer Konzeption entspricht und in Visual Studio integriert ist, würde ich nach einem guten, selbst-hostbaren VCS suchen, das Ihrer Konzeption entspricht und nicht integriert ist mit Visual Studio noch nicht. Fügen Sie dann die Integration hinzu. Natürlich, wenn Sie einen finden, der auch integriert ist, wäre das nett, aber es nimmt alle Herausforderungen, nicht wahr?

Abgesehen davon, dass das Problem sehr viel komplexer wird, wenn Sie versuchen, beide Schritte gleichzeitig auszuführen, würde ich argumentieren, dass es das Design Ihrer Software ernsthaft beeinträchtigen kann, wenn Sie Backend und Frontend gleichzeitig implementieren.

Wahrscheinlichkeiten sind, dass Sie in eine Falle geraten, dass eine Menge Software tut, wo die UI und die Logik so eng miteinander verbunden sind, dass Sie nicht einfach die beiden ändern oder sie später sogar trennen können.

+0

Ich würde sagen, das ist ein guter Rat für jedes Software-Projekt. – Nolte

+0

Ich denke, dass Sie Ihrem Projekt mehr Schaden zufügen werden, um das Backend zu entwickeln, ohne ein Konzept dessen, was die Frontend-Anforderungen sind. Wenn ich das tun würde, würde ich mir die Frontend-Anforderungen (von der SDK-API) ansehen und das Design des Backends bestimmen lassen, indem ich jeweils eine Interface-Komponente erstellen würde. – tvanfosson

+0

Kommentar vollständig ignoriert die Frage gestellt und ging auf eine über sogar so etwas zu tun! –

4

Ein einfaches VCS ist nicht so schwer zu schreiben. Kernighan und Pike beschreiben in ihrem großen Buch The UNIX Programming Environment einen einfachen, der mit diff und awk gebaut wurde, was sich sehen lassen kann (siehe Kapitel 5).

Der Aufbau einer realistisch verwendbaren Version ist jedoch eine Menge Arbeit und erfordert extremes Testen. Sie müssen absolutes Vertrauen in Ihr VCS haben, sonst werden Sie es einfach nicht benutzen.

+0

Eigentlich muss es nicht realistisch nutzbar sein. Ich möchte zunächst etwas, das in Visual Studio für einen einzelnen Entwickler funktioniert. Sobald das erledigt ist, überarbeite ich das Projekt erneut, um zu sehen, ob ich es verbessern werde und wie. Ich suche nur nach einer Programmierherausforderung für erfahrene Entwickler. :-) –

+0

Ich verstehe nicht, warum Leute, die nach einer "Programmierherausforderung" suchen, immer wieder das Rad neu zu erfinden scheinen (siehe alle FTP- und IRC-Clients da draußen). Warum nicht etwas Neues schaffen? Sicherlich eine größere Herausforderung? –

+0

Nun, das Rad neu erfinden? Nicht wirklich. Nur versuchen, eine viel bessere Erfahrung mit Versionskontrollsystemen zu erlangen. Für mich brauche ich nur diese Herausforderung, um meine Fähigkeiten auf dem neuesten Stand zu halten.Und es hält mich ein wenig unabhängiger von bestehenden Produkten. –

0

Sie möchten vielleicht versuchen, die AnkhSVN source betrachten, wenn Sie ein gutes Beispiel dafür, wie sie es mit Subversion tun wollen.

Verwandte Themen