Forum: PC Hard- und Software Setzt ihr Versionierungs-Tools für SW-Entwicklung ein ?


von UBoot-Stocki (Gast)


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

von Stefan (Gast)


Lesenswert?

Schon mal Bibliotheken erstellt ??? Würde einiges vereinfachen :-)

von Jojo S. (Gast)


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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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. ;-)

von Ingo E. (ogni42)


Lesenswert?

Früher CVS, jetzt subversion.

Beruflich schon mal ClearCase, aber das ist m.E. für die meisten uC 
Projekte mit Eulen auf Spatzen geschossen.

von Rolf Magnus (Gast)


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.

von ARM-Fan (Gast)


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.

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von yalu (Gast)


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.

von Uhu U. (uhu)


Lesenswert?

> mit Eulen auf Spatzen geschossen

Wer mit Eulen schießt, dem fliegen sie zuerst um die Ohren und dann ins 
Gesicht.

Hinterher ist der Schütze blind und macht nie wieder solche Dummheiten.

Ich kenn mich da aus...

von Ingo E. (ogni42)


Lesenswert?

Immer noch besser als Kanonen nach Athen getragen :)

von thomas-hn (Gast)


Lesenswert?

Wie habt Ihr Euch in Subversion eingearbeitet?
Haben die meisten von Euch ne Einführung in der Firma bekommen oder 
gibt's ne Quelle für ein gutes Einsteigertutorial? ;-)

von Ingo E. (ogni42)


Lesenswert?

Installieren und bedarfsweise die hilfe aufrufen. Wer schon mal mit 
Konfigmgmtsystemen gearbeitet hat, sollte mit svn keine Probleme haben.

von Rolf Magnus (Gast)


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.

von let (Gast)


Lesenswert?

http://svnbook.red-bean.com/

Es hat allerdings das gleiche Problem wie alle anderen
Bücher auch: Man muß sie lesen ;)

von ---- (Gast)


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).

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von LoL (Gast)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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).

von yalu (Gast)


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.

von Uhu U. (uhu)


Lesenswert?

M$ benutzt SourceSafe garantiert nicht für seine Produkte. Das Teil war 
schon vor Jahren unter aller Kritik und hat sich seither wohl nicht 
wesentlich gebessert.

von yalu (Gast)


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.

von Pedobear (Gast)


Lesenswert?


von Outi O. (outlaw)


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.

von Outi O. (outlaw)


Lesenswert?

Hält die Programme klein und lässt sich leichter pflegen ....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.