CVS Integration in Visual Studio
-
Hi
Ich hab da ein kleines Problem. Vor einem Jahr bekam ich in meiner Firma die Chance aktiv an der Entwicklung eines Produktes mit zu wirken. Dieses ist in reinem C geschrieben und wird mit Micrsoft Visual Studio 2003 verwaltet. Insgesammt besteht unser Team aus 3 Mann. Keiner von uns ist ein reinrassiger Programmierer der die Zeit hat sich voll um das Projekt zu kümmern, da unsere eigentlichen Aufgabenbereiche wo anders liegen. Jeder führt am gleichen Quellcode Änderungen durch. Sprich es gibt eine Version, die sich jeder vom Server runterlädt. Dann werden von jedem im Laufe der Zeit Änderungen durchgeführt. In regelmäßigen Abständen (ca alle 4 Wochen) wird das Projekt wieder synchronisiert. Diese Aufgabe obliegt mir
. Sprich ich darf alle Dateien gegeneinander auf Veränderungen prüfen, um sie korrekt zusammenführen.
Und genau da fangen meine Probleme an:
Problem 1:
Die Zusammenführung klappt wunderbar wenn jeder in unterschiedlichen Dateien gearbeitet hat. Haben aber 3 Leute in der gleichen Datei Änderungen vorgenommen, insbesonders an der gleichen Stelle...
Problem 2:
Es benötigt extrem viel Zeit da es extrem aufwendig ist, da oft Änderungen in verschiedenen Modulen zusammen so nicht mehr funktionieren. Zugegeben dies ist eher ein Problem der sauberen Kapselung als das der Versionskontrolle.Die anderen beiden scheinen mit der Situation recht zufrieden zu sein, und wollen nicht wirklich etwas ändern. Daher muss ich mich bemühen den Umstieg so einfach wie möglich zu gestalten.
Nun weiss ich das es CVS-Systeme gibt, und das diese unsere Zusammenarbeit vereinfachen könnten und ein solches würde ich gerne einführen. Also gegoogelt und gleich viele Lösungen gefunden. Prinziepiell lassen sich die Lösungen in 2 Punkte aufteilen:
- Frei erhältliche CVS-Systeme die über die Kommandozeile oder eine seperate GUI bedient werden können.
- Microsoft Visual Source Safe das eine Integration zum Studio anbietet.
Letzteres scheidet aus, da ich die finanziellen Mittel dafür nicht genehmigt bekomme.
Bei den freien Systemen sehe ich ein Problem der Integration. Sicherlich kann ich einen Server einrichten auf dem sich die User anmelden und ihre Dateien auschecken, um sie dann wieder einzuchecken und ggf. zu vergleichen. Da dies dann über ein seperates Dienstprogramm geschehen wird und vom Handling her eine größere Umstellung bedeutet, werde ich meine Kollegen nicht wirklich davon überzeugen können
Was ich suche ist eine kostenlose Lösung wie ich ein CVS-System direkt in Visual Studio integrieren kann, so dass dessen Existenz kaum von den Anwender wahrgenommen wird. Google lieferte mir leider bisher nichts brauchbares.
Hoffe jemand von euch hat eine Anregung für mich

Sven
P.S.
Ich bin es langsam leid mit Menschen zu arbeiten, dessen Leitspruch lautet "Das haben wir bisher immer so gemacht, warum sollten wir was daran ändern?" Ich will ja nicht das Rad neu erfinden, aber an jedem System kann man etwas verbessern.
-
sgergen schrieb:
In regelmäßigen Abständen (ca alle 4 Wochen) wird das Projekt wieder synchronisiert.
Viel zu langer Abstand, das ist keine vernünftige Strategie, da entwickelt ja jeder eine eigene Version für sich.
Die Zusammenführung klappt wunderbar wenn jeder in unterschiedlichen Dateien gearbeitet hat. Haben aber 3 Leute in der gleichen Datei Änderungen vorgenommen, insbesonders an der gleichen Stelle...
In der gleichen Datei Zeugs ändern ist mit modernen VCS kein Problem. Die gleiche Stelle zu ändern, müsst Ihr Euch abgewöhnen, da hilft nur gute Planung und viel Kommunikation.
Die anderen beiden scheinen mit der Situation recht zufrieden zu sein, und wollen nicht wirklich etwas ändern. Daher muss ich mich bemühen den Umstieg so einfach wie möglich zu gestalten.
Klingt stark nach einem Anwendungsfall für Subversion+TortoiseSVN oä.
- Frei erhältliche CVS-Systeme die über die Kommandozeile oder eine seperate GUI bedient werden können.
VCS-Systeme. CVS ist nur ein VCS-System unter vielen.
- Microsoft Visual Source Safe das eine Integration zum Studio anbietet.
Letzteres scheidet aus, da ich die finanziellen Mittel dafür nicht genehmigt bekomme.
SourceSafe ist ohnehin ziemlicher Mist.
Bei den freien Systemen sehe ich ein Problem der Integration.
TortoiseSVN ist ziemlich fein, aber natürlich gibt es auch zig freie VisualStudio-Plugins für alle erdenklichen VCS.
Sicherlich kann ich einen Server einrichten auf dem sich die User anmelden und ihre Dateien auschecken, um sie dann wieder einzuchecken und ggf. zu vergleichen. Da dies dann über ein seperates Dienstprogramm geschehen wird und vom Handling her eine größere Umstellung bedeutet, werde ich meine Kollegen nicht wirklich davon überzeugen können

Mit einem gut eingerichteten VCS inklusive passendem GUI/IDE-Plugins wird das alles soweit automatisiert, dass Deine Kollegen nur mehr sagen müssen, welche Änderungen sie committen wollen bzw. Konflikte manuell aufgelöst werden müssen.
-
nman schrieb:
sgergen schrieb:
In regelmäßigen Abständen (ca alle 4 Wochen) wird das Projekt wieder synchronisiert.
Viel zu langer Abstand, das ist keine vernünftige Strategie, da entwickelt ja jeder eine eigene Version für sich.
Zugegeben. Nicht exakt alle 28 Tage. Dies hängt davon ab, wie viel in letzter Zeit geändert wurde. Dementsprechend veringert oder vergrößert sich die Zeit. Ist die Zeitspanne zu kurz ist dies jedoch auch keine Lösung, da ich dann nur noch am manuellen zusammenstückeln beschäftigt wäre.
nman schrieb:
In der gleichen Datei Zeugs ändern ist mit modernen VCS kein Problem. Die gleiche Stelle zu ändern, müsst Ihr Euch abgewöhnen, da hilft nur gute Planung und viel Kommunikation.
Das ist ein Problem. Da wir nicht feste Zeiten haben um uns um die Software zu kümmern, sind Erweiterungen relativ kurzfristig und nicht mit jedem absprechbar, da garantiert mindestens einer gerade auf einem Service-Einsatz außerhalb der Firma ist.
nman schrieb:
Klingt stark nach einem Anwendungsfall für Subversion+TortoiseSVN oä.
Thx, werde mich mal dort durchlesen.
nman schrieb:
SourceSafe ist ohnehin ziemlicher Mist.
Nach ein paar Erfahrungsberichten dich ich darüber gelesen habe teile ich die Meinung, aber meine Erfahrung mit VCS - System bisher ist = NULL.
nman schrieb:
Sicherlich kann ich einen Server einrichten auf dem sich die User anmelden und ihre Dateien auschecken, um sie dann wieder einzuchecken und ggf. zu vergleichen. Da dies dann über ein seperates Dienstprogramm geschehen wird und vom Handling her eine größere Umstellung bedeutet, werde ich meine Kollegen nicht wirklich davon überzeugen können

Mit einem gut eingerichteten VCS inklusive passendem GUI/IDE-Plugins wird das alles soweit automatisiert, dass Deine Kollegen nur mehr sagen müssen, welche Änderungen sie committen wollen bzw. Konflikte manuell aufgelöst werden müssen.
Das wäre mir natürlich am liebsten. Wie gesagt werde mich mal ein bisschen über TortoiseSVN informieren.
-
Nimm Eclispe. Ich hab auch mal mit TortoiseSVN ein bischen rumgemacht und fand Eclipse viel besser. Du checkst dir alles mit Eclipse in einen Workspace aus, öffnest dann das Projekt mit dem Studio und wenn du fertig bist refreshst du deinen Eclipse Workspace und synchronisierst/commitest alles. Synchronisiert immer alles sofort, wenn ihr es fertig programmiert und getestet habt. Dann gibts auch fast keine Konflikte und falls doch, kannst du die mit der Mergeview von Eclipse relativ einfach auflösen.
Außerdem kannst du auch sehr einfach Versionen oder Branches im CVS anlegen.
-
sgergen schrieb:
Ist die Zeitspanne zu kurz ist dies jedoch auch keine Lösung, da ich dann nur noch am manuellen zusammenstückeln beschäftigt wäre.
Das manuelle Zusammenstückeln entfällt angenehmerweise für Dich mit einem VCS.
Das ist ein Problem. Da wir nicht feste Zeiten haben um uns um die Software zu kümmern, sind Erweiterungen relativ kurzfristig und nicht mit jedem absprechbar, da garantiert mindestens einer gerade auf einem Service-Einsatz außerhalb der Firma ist.
Naja, dann braucht Ihr eben ein Forum/Wiki/sonstwas zur Kommunikation und hin und wieder Telefonkonferenzen.
tipp schrieb:
Nimm Eclispe. Ich hab auch mal mit TortoiseSVN ein bischen rumgemacht und fand Eclipse viel besser.
Niemand stellt nur wegen der VCS-Integration auf eine andere IDE um. Tortoise habe ich ja auch nur deswegen genannt, weil ich kein VisualStudio verwende und weiß, dass es unter VS-Benutzern hier im Forum recht beliebt ist. Aber sogar einige Eclipse-User verwenden Tortoise lieber als die entsprechenden Eclipse-Plugins, insofern ist der Tip wohl nicht so schlecht.
Aber wer mehr auf IDE-Plugins steht, kann natürlich auch mal ankhsvn probieren, das sieht auch ganz gut aus.