![]() |
AW: Revisionssystem einführen
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Revisionssystem einführen
Zitat:
... der eigentliche Vorteil für mich bei Hg gegenüber waren nicht die ganzen tollen Features welche ich besprochen habe - die sind sozusagen Sahnehäubchen und Kirsche. Der eigentliche Vorteil war die Geschwindigkeit. Einen Teil davon könnte man im Übrigen auch in SVN mitnehmen, wenn die SVN-Entwicker sich von diesem bekloppten System verabschieden würden, bei dem die Metadaten (.svn Verzeichnisse) verstreut in der Arbeitskopie liegen. Das ist viel aufwendiger für das Dateisystem und daher langsamer. Aber die Krönung war echt wie lange es bei vielen Dateien dauert - insbesondere wenn kleine Dateien überwiegen. Da wir ohnehin schon ein riesiges SVN-Repo hatten, habe ich aus Verzweiflung irgendwann die ungenutzten Teile von bspw. Boost rausgworfen, weil die eine zusätzliche Verlangsamung bewirkten. Aber das ist noch immer sehr langsam gegenüber Hg. Dort hat man eben die gesamte Versionsgeschichte auf der lokalen Platte (und das Repo ist dennoch deutlich kleiner ...) wodurch die meisten Operationen tierisch schnell werden. Langsamer aber keineswegs vergleichbar langsam wie SVN, ist es bei Pull und Push. Übrigens hat man sich zumindest bei Hg angewöhnt auch die coolen Seiten von bspw. Windows zu benutzen. Klone werden weitgehend über Hardlinks realisiert. Bis man also etwas ändert, wird kein zusätzlicher Platz verbraucht. Zitat:
Shelving bedeutet, daß man Änderungen auf einen Stapel schiebt und danach in umgekehrter Reihenfolge wieder herunternehmen kann. "Hunk selection" bedeutet, daß man innerhalb einer Datei bestimmte Änderungen eincheckt und andere noch so beläßt, daß sie nicht in der Versionshistorie erscheinen. Wenn man Legacy-Code pflegt und bspw. Bugfixes machen muß, ist das eine feine Angelegenheit. Abgesehen davon gibt es noch Queueing: Queueing habe ich in SVN noch nicht gefunden, aber ich lasse mich gern eines besseren belehren. Das ist, wenn man lokal Patches verwaltet und diese auf die von außen gezogenen Änderungen im Repository anwendet (bzw. durch die Software anwenden läßt). Gibt es auch bei Git, bei Bazaar bin ich mir jetzt nicht sicher, da das nicht zu meinem Vergleich damals gehörte. Benutzt wird das bspw. gern von den Leuten in der Linux-Kernel-Entwicklung. Ich bin mir aber sicher, daß du aus der Beschreibung (oder ggf. mit etwas Nachlesen) sofort ein paar Einsatzmöglichkeiten dafür in deinen Szenarien findest. Übrigens Merge-Tracking wurde erst vor kurzem (1-2 Jahre?) in Subversion eingeführt. Bei den besprochenen DVCS ist es von Hause aus dabei und außerdem werden dort Verzeichnisse mitversioniert. Zitat:
Vielleicht habe ich mich auch etwas von dieser Unix-Philosophie anstecken lassen, daß es besser ist viele kleine Programme zu haben die für den jeweiligen Zweck perfekt geeignet sind und sich verknüpfen lassen, anstatt die eierlegende Wollmilchsau unter den Programmen zu haben. Zitat:
Die zweite Strategie ist es einen lokalen Klon anzulegen und auf diesem zu arbeiten. Sobald man dann eine Änderung hat die hineingehen soll, kann man (ggf. mit hg rebase) zu dem lokalen Quelrepo schieben und von dort ggf. weiter. Ich persönlich bevorzuge die zweite Strategie, benutze die erste aber bspw. für Release-Branches. Zitat:
Zitat:
Übrigens: das regelmäßige Einchecken (vorzugsweise mehrfach am Tag beim aktiven Entwickeln) ist absolut keine Selbstverständlichkeit bei vielen Entwicklern. Da kotze ich dann immer ab, wenn sie mir erzählen, daß sie an einem Feature oder Bugfix gewerkelt haben und keine Zwischenstände sichtbar sind. Mein Tip: Wenn dir dein Arbeitgeber die Zeit gibt oder du sie dir eigenverantwortlich nehmen kannst um sowas mal zu testen, probiere es anhand eures SVN-Repos. Alle DVCS bieten hervorragende Konvertierungswerkzeuge (wobei einige als Plugins kommen). Auch inkrementelle Konvertierung ist drin, so daß mit ein wenig anfänglichem Aufwand selbst einem gemischten Betrieb nichts im Wege stehen sollte. Sobald du konvertiert hast, probiere einfach die üblichen Funktionen welche du bei SVN benutzt einmal aus. Die meisten Basisfunktionen sind beim Namen geblieben. Nur beim Einchecken muß man sich bewußt sein, daß dies nur lokal geschieht. Um es an ein (bspw. per Konvention zentrales) Repo zu schicken muß man Push benutzen. Wenn du das mal ausprobiert hast, weißt du jedenfalls für dich, daß du beruhigt und ohne Reue SVN weiterbenutzen kannst ohne das Gefühl zu haben etwas zu verpassen. Oder du stellst fest, daß etwas dran ist und leitest ggf. eine sanfte Migration ein. Nachtrag: Ach und übrigens: CVS war in meinen Vergleichen bisher noch immer deutlich schneller als SVN. Vielleicht hat da jemand bei "besser als CVS" gedacht, daß sich alle Werte erhöhen müßten? :lol: |
AW: Revisionssystem einführen
Zitat:
![]() |
AW: Revisionssystem einführen
Zitat:
Nachtrag: nett nett ... ![]() |
AW: Revisionssystem einführen
Übrigens, gerade erst gefunden: VisualHg ->
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz