Hallo Mike,
Post by Herfried K. Wagner [MVP]Naja... Wenn VS abstürzt, dann lassen sich m.E.n. Dateien über VS
wiederherstellen. Für alles andere bietet sich die Verwendung eines
CVS an, welches ein zurückgehen zu einer älteren Version erlaubt.
Bei einer solchen Konvertierung arbeite ich persönlich auch nie mit den
Originaldateien, sondern immer mit einer Kopie ;) Dann hat man immer
noch das Original als Backup.
Ein Extra CVS wollte ich zunächst nicht einrichten, da es als Single-Programmierer nicht unbedingt gebraucht wird
Dem möchte ich widersprechen, denn das ist m. E. die einzig sinnvolle
Möglichkeit, Quellcode zu sichern und sich vor solchen Verlusten zu
schützen. Das bringt natürlich nur etwas, wenn man von dem Repository
(egal ob VSS, CVS, SVN, ...) regelmäßig Backups auf einen anderen
Datenträger macht, es braucht ja nicht gleich täglich oder wöchentlich
zu sein, für einen einzelnen Programmierer. Das kommt natürlich auch auf
das Projekt an, wie wichtig es ist, welche Bedeutung es hat etc.
Hm, nach den Antworten aus der NG bisher, sieht es fast so aus, als ob
ich mir das CVS doch nochmal installiere ;-)
Sicher eine gute Idee, eine Source Code Verwaltung zu installieren.
Hatte mal Subversion und TurtoiseSVN installiert. Hat jemand Erfahrugen
damit oder ist CVS doch besser?
Vorab, ich kenne CVS nicht, nur VSS 6.0 und SVN. VSS 2005 habe ich mir
schon mal angeschaut, aber noch nicht mit gearbeitet.
Also ich bin mit SVN und TortoiseSVN sehr zufrieden, und wenn du nicht
gerade ein Apache laufen hast empfehle ich dir, SVNService [1] zu
benutzen. Das vereinfacht den Zugriff auf das Repo wenn dieses auf einem
Server statt deinem Entwicklungsrechner liegt, oder wenn doch dort, dann
wie bei mir auch den Zugriff vom Laptop aus. Dann brauchst du nämlich
keine Netzwerkfreigaben zu verwalten und kannst einfach via
svn://reposerver/projekt/ o. ä. auf dein SVN zugreifen.
Aber mit dieser Kombination kannst du zwar deine Codedateien im SVN
archivieren und natürlich auch mit VS 2005 entwickeln, jedoch sind das
noch zwei getrennte Welten. Wenn du SVN ins VS integrieren willst,
brauchst du noch ein weiteres Tool wie z. B. den SVN Proxy [2] oder eine
der unter [3] aufgelisteten Alternativen. Mit dem SVN Proxy sind dann
die Funktionen der Quellcodeverwaltung im VS genau so nutzbar als wenn
du VSS verwendest, abgesehen vielleicht von ein paar wesentlichen
Unterschieden dieser Produkte.
Ein Vorteil ist aber, dass der Proxy Umbenennen, Verschieben, Löschen
von verwalteten Dateien und Ordnern erkennt und diese Änderungen (auf
Nachfrage) ins Archiv überträgt. D. h. man muss eine Datei vorm
Umbenennen oder verschieben nicht erst aus dem Projekt entfernen, im
Archiv (oder über TortoiseSVN) umbenennen/verschieben, dann neu abrufen
und die Datei wieder ins Projekt aufnehmen. Das kann direkt im VS
gemacht werden.
Allerdings muss ich auch vor diesem Feature warnen! Es arbeitet aus mir
unbekannten Gründen mit temporären Dateinamen die nach GUIDs oder
Ähnlichem aussehen. Ich habe eine Reihe von Fremdassemblies (log4net
etc.) die ich in allen Projekten brauche. Diese liegen in einem
Solution-Ordner, der über die Property "svn:externals" in alle
Projektordner geshared wird, damit die Assemblies nur an einer Stelle
aktualisiert werden müssen. Wenn man diesen "externen" lib-Ordner nun
abgerufen hat und ins Projekt aufnimmt, werden die Dateien darin
zwangsweise ausgecheckt. Dabei gibt der Proxy ihnen einen solchen
temporären Namen und anschließend den neuen (alten) Namen. Manchmal
bleibt er da aber hängen (NUR bei externen Ordnern) und die log4net.dll
hat dann auch im Archiv einen kryptischen Namen. Man kann diesen Problem
aber dadurch umgehen, dass man die Überwachung von Umbenennungen einfach
abschaltet. Der Proxy wird auch gerade überarbeitet und ich werde das
Problem noch melden. Die Chance dass es bald behoben wird ist also gut.
Und die 19 Euro für eine Lizenz ist sicher nicht zu viel. Die Lizenz
gilt für drei Rechner einer Person.
[1] http://dark.clansoft.dk/~mbn/svnservice/
[2] http://pushok.com/soft_svn.php
[3] http://subversion.tigris.org/project_links.html#clients
Gruß,
Marco