Setzt ihr Versionierungs-Tools für SW-Entwicklung ein ?

Gast #691137
Lesenswert?

Hi,

sind Euere Projekte so groß, dass es Sinn macht Versionierungs-Tools 
einzusetzen?

Ich entwickle unter Windows XP mit Win-AVR-GCC (nicht kommerziell - nur 
Hobby) an verschiedenen (ähnlichen) C-Projekten gleichzeitig (Uhr, 
Bewässerungscomputer, Rolladensteuerung, ...) Dabei laufe ich in 
Versionsprobleme. Z.B. fällt mir während der Programmierung der 
Rolladensteuerung ein "tolles Gimmick" ein, welches ich unbedingt in 
meiner Uhr auch verwenden möchte ... Schon ist das Durcheinander da.

Mit einem Versionsverwaltung (so stelle ich mir das vor) müsste es doch 
einfacher gehen?

Setzt Ihr sowas ein ?

Gruß

Andreas
Gast #691162
Lesenswert?

auf der Arbeit setzen wir jetzt Subversion ein, das gefällt mir ganz 
gut. Vor allem da mehrere Leute an einem Projekt arbeiten ist das 
unerlässlich. Aber auch für kleine Projekte sehe ich durchaus Vorteile 
und werde das jetzt für den AVR 'Bastelkram' installieren. Je früher man 
sich an den zusätzlichen Aufwand gewöhnt desto besser.
Die Bibliotheken lösen das Chaos nicht. Im Gegenteil, eine Lib für ein 
neues Projekt B erweitert ist dann vielleicht inkompatibel zu einem 
älteren Projekt A oder der zusätzliche Code macht die neue ganz einfach 
zu gross. Mit der Versionsverwaltung macht einen Schnappschuss der 
verwendenten Lib und kann die mit einem Klick wieder restaurieren.
Moderator Persönliche Seite #691186
Lesenswert?

Ich nehme seit Urzeiten für alles, auch für persönlichen Kleinkram,
CVS.  Wenn ich jetzt anfangen müsste, würde ich vermutlich auch mit
SVN anfangen, aber da ich mit CVS groß geworden bin, stören mich
dessen Nachteile in diesem Bereich noch nicht so gravierend, dass
ich das alles umstellen würde.

Eine Arbeit ohne Versionsverwaltung kann ich mir nicht mehr
vorstellen.  (Eine Arbeit ohne nächtliches Backup auch nicht. ;-)
Gast #691350
Lesenswert?

> sind Euere Projekte so groß, dass es Sinn macht Versionierungs-Tools
> einzusetzen?

Ich setze es auch für kleine Projekte immer ein. Ich finde, wenn man 
auch nur halbwegs ernsthaft programmieren will, führt kein Weg daran 
vorbei.
Mir geht es hier wie Jörg. Ich benutze CVS, würde aber vermutlich SVN 
benutzen, wenn ich jetzt neu anfangen würde.
Gast #691421
Lesenswert?

>... mit Eulen auf Spatzen geschossen.

Eulen trägt man nach Athen.
Die Spatzen werden mit Kanonen erschossen.
Schönes Ding :-))

Zu, Thema:
Ich mache auch den kleinsten Frickelkram immer nur "MIT".
Es lohnt sich immer und der vermeintliche Mehraufwand ist
lächerlich im Vergleich zu "verlorenem" Quellcode.

Ganz konkretbei mir: MS Source Safe.
Und zwar, weil wirs eh wegen dem Visual Studio benutzen.
Admin Persönliche Seite #691475
Lesenswert?

> sind Euere Projekte so groß, dass es Sinn macht Versionierungs-Tools
> einzusetzen?

Jedes Projekt ist groß genug dafür. Ich verwende selber SVN und Darcs. 
Für Windows würde ich SVN empfehlen. Wenn man gerne auf der 
Kommandozeile arbeitet ist Darcs komfortabler.

> Z.B. fällt mir während der Programmierung der
> Rolladensteuerung ein "tolles Gimmick" ein, welches ich unbedingt in
> meiner Uhr auch verwenden möchte ... Schon ist das Durcheinander da.

Das Abgleichen von Änderungen zwischen verschiedenen Projekten ist auch 
mit einer Versionsverwaltungssoftware nicht ganz einfach. CVS und SVN 
(zumindest < 1.5) bieten da keine große Hilfe.
Gast #691514
Lesenswert?

Ich setze Versionierungs-Tools sowohl beruflich (früher MS SourceSafe
(ein Graus), jetzt Subversion) als auch im Hobby (früher CVS, jetzt
ebenfalls Subversion) ein, aber nicht um komplett neue Features von
einem Projekt in ein anderes zu übertragen, sondern hauptsächlich als
"Zeitmaschine", um jederzeit beliebige ältere Versionen einer Software
wiederherstellen zu können.

Von den Programmen, die's für umme gibt, ist wohl Subversion (SVN)
derzeit neben CVS das verbreitetste und wird dieses nach und nach
ersetzen.
Gast #692579
Lesenswert?

Mit SVN habe ich noch nicht oft gearbeitet. Zu CVS habe ich mir ein Buch 
gekauft und durchgelesen. Über SVN gibt's auch Bücher. Ich denke, das 
ist auch ganz sinnvoll, wenn man vorher noch gar nicht mit 
Revisionsmanagement-Systemen zu tun hatte. Es gibt aber bestimmt auch 
gute Tutorials im Netz.
Gast #692592
Lesenswert?

>> Z.B. fällt mir während der Programmierung der
>> Rolladensteuerung ein "tolles Gimmick" ein, welches ich unbedingt in
>> meiner Uhr auch verwenden möchte ... Schon ist das Durcheinander da.
>Das Abgleichen von Änderungen zwischen verschiedenen Projekten ist auch
>mit einer Versionsverwaltungssoftware nicht ganz einfach. CVS und SVN
>(zumindest < 1.5) bieten da keine große Hilfe.
Naja, zumindest die SVN-externals können da schon einen Schritt 
weiterhelfen - soweit einem da ein Versionierungstool überhaupt helfen 
kann.

SVN ist allerdings nur die halbe Miete, du brauchst auch noch einen 
SVN-Client, um die Dateien vernünftig ein/auszuchecken. Dafür nimmt man 
unter Windows den TortoiseSVN. Der integriert sich ins Kontextmenü des 
Explorers und man muss sich nicht an eine neue Oberfläche gewöhnen, 
sondern kann direkt aus dem Explorer heraus Dateien verwalten.

Ich bin vor einigen Monaten ebenfalls von CVS auf SVN umgestiegen. Und 
gerade die externals habe ich zuvor sehr vermisst (bzw. übersehen falls 
es das schon bei CVS gab :-).

----, (QuadDash).
Admin Persönliche Seite #692783
Lesenswert?

---- wrote:
> Naja, zumindest die SVN-externals können da schon einen Schritt
> weiterhelfen - soweit einem da ein Versionierungstool überhaupt helfen
> kann.

Externals bringen da eher wenig. Beim Abgleichen von Änderungen zwischen 
verschiedenen Branches (oder auch verschiedenen Repositories, manche 
Systeme wie z.B. Darcs machen da keinen Unterschied) ist Merge Tracking 
sehr hilfreich. SVN beherrscht das im Gegensatz zu den meisten 
Konkurrenten leider noch gar nicht, erst für Version 1.5 ist etwas 
geplant.
Moderator Persönliche Seite #693086
Lesenswert?

LoL wrote:

> Wir nutzen schon ewig Visual SourceSafe von Microsoft, es gab nie
> Probleme damit.

Da habe ich aber von anderen auch schon komplette Horrorstories drüber
gelesen.  (Weiß nicht mehr genau wo, ich glaube, es war auf avrfreaks.)
Von wegen mehrfach komplett zerschossene Datenbank, jeweils mit
Rückspielen von Tape-Backups nur zu reparieren (und entsprechendem
Verlust eines Teils der jüngeren Geschichte).
Gast #693121
Lesenswert?

Der Schwachpunkt bei SourceSafe ist, dass es im Gegensatz zu den
meisten anderen Versionsverwaltungssystemen keinen zentralen Server
gibt, der die Zugriffe auf das Repository prüft und koordiniert.

Das Repository ist einfach eine Verzeichnisstruktur, die von den
"Clients" per Dateifreigabe in eigner Verantwortung gelesen und
beschrieben wird. Deswegen müssen den einzelnen angeschlossenen PCs
volle Zugriffsrechte auf dieses Verzeichnis gewährt werden.

Ein einzelner PC im Netzwerk, auf dem nicht alle SourceSafe-Bugfixes
installiert sind, kann somit das komplette Repository unbrauchbar
machen. Aber auch andere (fehlerhafte) Anwendungen können durch Zufall
(bspw. beim Bearbeiten von Verzeichnisbäumen) in das Repository
gelangen und dort Schaden anrichten, weil sie natürlich die gleichen
Zugriffsrechte haben wie das SourceSave-Programm selbst.

Bei serverbasierten Versionsverwaltungssystemen muss jede Transaktion
auf dem Repository den Server durchlaufen, es gibt keinen direkten
Zugriff auf das Repository. Der Server führt zumindest einige
Plausibilitätschecks auf die Anfragen durch, bevor er sie ausführt. So
führen fehlerhafte Clients schlimmstenfalls zu neuen Releases mit
seltsamem Inhalt (die auch wieder gelöscht werden können), sie
zerstören aber nicht die Repository-Struktur.

Fairerweise muss man dazu sagen, dass solche Repository-Crashs in
SourceSafe relativ selten auftreten. Wenn es aber doch einmal
passiert, ist meist ein Teil der Historie verloren und das Geheule
groß. Da helfen weder regelmäßige Backups noch RAID-Systeme.

Abgesehen von der mangelnden Datensicherheit fehlen dem SourceSafe
einfach ein paar Features, allen voran die Verwaltung von Branches,
die für ein professionelles Release-Management unabdingbar ist. Das
Programm ist halt doch schon etwas älter und wurde, wenn ich das
richtig gehört habe, von MS inzwischen durch etwas moderneres ersetzt.
Gast #693167
Lesenswert?

> M$ benutzt SourceSafe garantiert nicht für seine Produkte.

Dieser Meinung bin ich auch. Man muss sich nur mal die

  Microsoft Visual SourceSafe Best Practices

auf

  http://msdn2.microsoft.com/en-us/library/Bb509342(VS.80).aspx

durchlesen. Das alles liest sich ein wenig wie "Wenn ihr das Tool
unbedingt benutzen wollt, tut es auf eure Verantwortung. Aber sagt
hinterher nicht, wir hätten euch nicht gewarnt!"

Schon der erste Satz erweckt volles Vertrauen:

  Under normal operation in a stable environment, Microsoft Visual
  SourceSafe provides excellent storage and security for your current
  source data and past revisions. However ...

Und so geht's weiter:

  Under normal use, your Visual SourceSafe database should not exceed
  3 to 5 GB.

Für die Entwicklung des Windows-Betriebssystems selbst scheint
SourceSafe also etwas schwachbrüstig zu sein.

  Use the Analyze tool shipped with Visual SourceSafe to detect and
  repair problems in the database structure. When you run Analyze
  regularly, especially in high-use situations, you can discover small
  problems and fix them before they become worse. Run Analyze weekly
  or, at a minimum, monthly, as part of regular maintenance.

Die Korruption passieren also häufiger und sind dazu noch schleichend.

  Running out of disk space in the middle of a complex operation can
  create serious database corruption.

Der Verlust der letzten Transaktionen wäre ja verständlich. Aber muss
deswegen gleich die ganze Datenbank zerschossen werden?

  The Ss.ini files of users are limited to 64 KB and a maximum of 10
  different computer-specific settings. ... If you are experiencing
  unusual user-specific problems, try deleting unnecessary entries in
  the user's Ss.ini file.

MSDOS und 8086 lassen Grüßen.

  Synchronize the dates and system clocks for all Visual SourceSafe
  client computers with the Visual SourceSafe server. This prevents
  check-in and check-out operations from appearing to happen out of
  sequence and affects any labels that are applied.

Eine weitere Konsequenz des serverlosen Konzepts.

Aber nun ist genug drauf rum gehackt. Das Teil ist alt und überholt,
da wird auch nichts mehr geflickt. Zum Glück gibt es für jeden
Geldbeutel genügend Alternativen.
#698947
Lesenswert?

Wozu Versionierung ??

Schmeiss den alten Schei** weg und nutze Deine neue Bibliothek. Am 
besten proggste so, dass jede wichtige Funktion in nem extra Modul ist 
und dann stellste je nach Anforderung einfach die gewünschten "Gimmiks" 
zusammen, da nicht jeder Furz in jede Anwendung muss.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren