![]() |
Revisionssystem einführen
Moin,
ich programmiere derzeit Beruflich in einer kleinen Softwareschmiede mit ca. 6 Programmierern. Wir haben im Prinzip mehrere von einander unabhängige Projekte + (gemeinsame) Library - wir arbeiten alle auf Delphi5 als IDE. Das "Merging" passiert derzeit händisch ohne feste Zeiten, dann wenn es eben für ein hotfix benötigt wird o.ä. in dem man in einem Netzwerkordner entsprechend die neuen Sourcen rein schiebt und diese dann per Vergleichsprogramm gemerged (das Tool was bei Total Commander dabei ist - ALT+D+V). Das diese Methode Chaos mit sich bringt bzw. recht unproduktiv ist sollte eigentlich klar sein und ich habe mich privat auch schon des öfteren mit SVN sowie Mercurial beschäftigt. Da ich diesen Zustand schon länger bemängelt habe und seit knapp einem Jahr einen Vortrag über die Vorteile von SVN rumliegen habe der aber nicht angesehen werden möchte von den entscheidenden Leuten wollte ich Euch zum einen fragen was Ihr für Revisionssysteme produktiv (kommerziell) einsetzt und wie man die Chefs am besten dazu überredet bekommt so etwas einzuführen. Greetz, ThY |
AW: Revisionssystem einführen
Wir benutzen SVN... hatten aber auch die Erfahrung dass das Überzeugen der BigBosses sehr mühselig ist... man könnte denen vorrechnen, wieiviel Zeit für das Mergen drauf geht (was SVN bsp. alleine macht)!
|
AW: Revisionssystem einführen
Argumente eine Chef gegenüber:
1.) Datensicherung in allen (Sub)Versionsständen 2.) quasi kostenlos 3.) automatisches Mergen mit Kontrolle wer wan was geändert hat. 4.) Je nach Einrichtung und Verwaltung Zugriff von jedem Platz der Welt 5.) Kunden können, wenn dies vereinbart ist immer die aktuellsten Sourcen ziehen 6.) Einfachere Verwaltung von Branches 7.) Zeit und dadurch Kostenersparnis |
AW: Revisionssystem einführen
Man sollte nicht die Technik anpreisen, sondern die Lösung. Schreib doch mal auf, wieviele und welche Probleme es gibt und wie lange es jeweils braucht, so ein Problem im Durchschnitt zu lösen (SVN Konflikte, Mergekonflikte, Buildbreaks). Dann kannst du immernoch deine Lösung präsentieren in welcher Form (SVN) auch immer. Aber bedenke, dass Werkzeuge alleine keine Lösung sind. Dazu gehören immer auch Prozesse und letztendlich Menschen. Mitarbeiter müssen überzeugt werden (wenn auch von oben), dass dies auch sinnvoll ist, sonst rennt man gegen geschlossene Türen. Welche Prozesse/Vorgehensmodelle nutzt ihr überhaupt? Wasserfallmodell? Extreme Programming? Gibt es einen Ablauf für ein Fix-Commit-Test Zyklus? Wie wird getestet? uvm.
Letztendlich wird es DIE Lösung wohl garnicht geben. Es ist daher immer sehr sinnvoll die derzeitigen Strukturen und Abläufe in der Firma zu analysieren und darauf aufzubauen oder sie anzupassen. Grundlegend alles zu ändern ist sehr schwierig und kann auch nach hinten losgehen. Kleine Veränderungen, die gut propagiert werden helfen da oft vielmehr, besonders wenn die Leute begeistert mitmachen. Weiterführende Literatur (habe ich auch): Software Engineering, Jochen Ludewig et al., dpunkt.verlag Lehrbuch der Softwaretechnik, Helmut Balzert, Spektrum Abenteuer Software Qualität, Kurt Schneider, dpunkt.verlag Managment von Softwareprojekten, Andreas Henrich, Oldenbourg |
AW: Revisionssystem einführen
Vielen Dank schon mal für Euer Feedback.
Das Vorrechnet ist denke ich mal vor allem für die BWL'ler wichtig, die wollen nun mal meistens nur die "nackten" Zahlen. Das kann ich aber auch nur rudimentär, ein Semester BWL auf der Uni hat mir gereicht, ich bin Programmierer ;) Aber ich denke für eine kleine Tabelle mit Zeit bzw. Arbeitsstunden die pro Woche drauf gehen sowie den Konflikten wenn z.b. unser "Maintainer" krank ist bzw. Urlaub hat (und die aktuellsten Sourcen auf dem Laptop auch physisch nicht vor Ort sind) hatten wir schon öfters die Situation keine aktuelle Version, trotz kritischer Bugs, zu deployen. Ich werde es auch denke ich erst mal allgemein halten, muss aber dann sicherlich auch konkretisieren und entsprechende Vorschläge bringen, da ist es natürlich wie Dezipaitor schon sagte immer sehr individuell. Ich fokusiere im Moment Mercurial an, da es doch am einfachsten zu verstehen ist und vor allem mit TortoiseHG ein Windows-Gui gibt womit man recht intuitiv arbeiten kann (sofern man das System dahinter verstanden hat). Mal schauen ob ich mir noch ein passendes Software-Engineering Buch kaufe, danke für die Buchempfehlungen! Greetz, ThY |
AW: Revisionssystem einführen
Das Totschlagargument ist meiner Meinung nach die Sicherung und der Team-Weite Zugriff. Was, wenn einer im Team der kurz vor der Vollendung eines Features steht, plötzlich Krank wird (Autounfall, fällt für mehrere Wochen aus, Das Notebook im schlimmsten Fall im Auto dabei und nicht mehr rettbar)?
|
AW: Revisionssystem einführen
Hallo,
Totschlagargument < Sicherung und der Team-Weite Zugriff > Nein. Das Totschlagargument ist die Nachvollziehbarkeit von Änderungen (changelog), wer hat wann was geändert. Heiko |
AW: Revisionssystem einführen
Zitat:
|
AW: Revisionssystem einführen
Man so ganz grundsätzlich:
Wer im Team programmiert und damit sein Geld verdient aber keine Versionsverwaltung hat, der handelt fahrlässig unprofessionell!! Das ist ungefähr so wie wenn ein Handwerker auf dem Bau ohne Elektrowerkzeug arbeiten würde. :wall: Selbst Einzelkämpfer (Freelancer) sollten eine Versionsverwaltung verwenden. Es stellt sich also nur noch die Frage, welche Software eingesetzt werden soll. Wir verwenden z.B. ![]() |
AW: Revisionssystem einführen
Das sehe ich ähnlich. Alleine schon aus dem Grund, das man schnell und relativ einfach zu einem funktionierenden Stand zurückkehren kann, falls man sich mal total verrannt hat, sollte man (auch als Einzelkämpfer) besser eine moderne Versionsverwaltung nutzen.
Um beim Thema zu bleiben: Ich kenne so ein Vorgehen, wie es der OP beschreibt, aus eigener Erfahrung und ich weiß, das es immer sehr "spaßig" war, falls mal 2 Entwickler gleichzeitig eine Unit bearbeiten wollten. Das ist dann im immer in wildem hin und her kopieren der Datei(en) geendet. Vielleicht wäre das auch ein Argument, das man für eine Versionsverwaltung ins Feld führen könnte. |
AW: Revisionssystem einführen
Wir verwenden auch
![]() Eine Quellcodeverwaltung ist das A und O in der professionellen Softwareentwicklung, auch im Hinblick auf ein Qualitätsmanagement. Sherlock |
AW: Revisionssystem einführen
Ich finde es alleine deswegen schon cool, weil ich
a) ein paar eigene Bibliotheken habe, die ich mir zu meinen Projekten hinzuholen kann (svn:externals) b) fremde Bibliotheken (soweit diese auf einem SVN liegen) auch c) ich bei diesen Externals die Revision festschreiben kann, damit nicht irgendeine Änderung dort mein Programm zerfetzt (neuere Revisionen teste ich dann ganz gemütlich aus, zurre die wieder auf den aktuellen Build fest, oder springe in der Revision wieder zurück und warte bis die das gefixt haben) Ja und das geht alles ohne wildes kopieren, downloaden und weiß der Geier ... sondern Rechtsklick - Aktualisieren und Projekt neu erzeugen fertig. Externe Libs, die nicht via SVN bezogen werden können lege ich einfach bei mir ins SVN rein und ziehe dann von da. Zu Jedi-VCS: Damit bin ich angefangen. Was mich aber gestört hat, ist dass dort keine relative Ablage möglich ist. Habe ich ein Projekt unter "C:\Dokumente\PeterLustig\Weltherrschaft" dann muss das auf allen Rechner an diesem Ort liegen. Bei SVN wird die Ordnerstruktur relativ betrachtet, was für mich erheblich besser ist. Meine Projekte sind in meinem UserDoc-Verzeichnis (da gehören die meiner Meinung auch hin) bei allen anderen in Ihrem und mit SVN ist das auch kein Problem. Darum bekam Jedi-VCS von mir die rote Karte. |
AW: Revisionssystem einführen
Tja, gegen die rote Karte hilft der gute alte subst Befehl ;)
Mit dem mappe ich mir meinen Delphi-Unterordner nach Z: und schon ist von da aus alles relativ :D Sherlock |
AW: Revisionssystem einführen
[OT] Eine neue Form der Relativitätstheorie :D [/OT]
|
AW: Revisionssystem einführen
Zitat:
Erfahrungsgemäss ist es verlorene Liebesmüh einen Chef zu überreden etwas Neues einzuführen. Es hilft imho auch nichts, wenn mal wieder eine Version "buggy" gemerged wurde anzumerken, mit einer Versionskontrolle wäre das nicht passiert (obwohl es meist so ist!). Ich stimme mich bei solch weitreichenden Änderungen im Vorfeld hier bei uns mit meinen Kollegen ab, zeige Ihnen das vorher mal demonstrativ am lebenden Exempel in zwei virtuellen Maschinen usw.. Wenn alle an einem Strang ziehen, ist es meist einfacher gemeinsam beim Chef zu argumentieren "Wir brauchen unbedingt". Und eigentlich könnt Ihr nur massenhaft Vorteile daraus ziehen. Kein Problem auf dem Rechner mal eben die Version xy wieder herzustellen oder mit dem Notebook mal eine Woche offline @home zu arbeiten. Das Zurückdrehen von SubVersion beschränkt sich auf die Löschung aller .svn Verzeichnisse und der Deinstallation des Clients - und Ihr seid wieder da wo Ihr jetzt seid. Da wollt Ihr nach einer gewissen Einarbeitungszeit aber sicher nie wieder hin! Wir haben ebenfalls mit FreeVCS/JediVCS angefangen, wobei uns das Locking und wie schon angeführt die harten Pfade gestört haben. Seit einem 3/4 Jahr sind wir jetzt auf Subversion umgestiegen und sind super zufrieden damit. |
AW: Revisionssystem einführen
:) Jedi-VCS ist aber "nur" ein VCS und kein DVCS. Ich tendiere im Moment eher zu einem DVCS wie Git oder Mercurial da man dort deutlich flexibler ist und vor allem das Problem des "Maintainer" relativ gut lösen kann (das eben nicht alle direkt auf den main/stable committen). Dies war bislang auch immer eine der Hauptargumente gegen ein VCS, dass dort jeder einfach alles committen kann und wir dadurch Instabilität bekommen würden. Wenn man nun jedoch einfach sein Repository hat kann der Maintainer einfach alle Änderungen aus den verschiedenen repos pullen und die dann entsprechend bewerten und in den Mainrepo einfließen lassen. Arbeitet hier jemand mit einem DVCS? Oder alle "nur" mit SVN/VCS?
Ich werde wohl auch einfach mal anfangen meine Änderungen Lokal in ein Mercurial Repo zu packen und somit ein zumindest für mich sehbares Resultat zu haben und dieses dann mit meinen Arbeitskollegen weiter vertiefen zu können. Ich denke auch das man hier nur gemeinsam im Team eine Lösung präsentieren kann, vor allem weil sich eben dann auch alle anpassen müssen, wobei das bei unserem recht kleinen Team noch nicht so schwierig sein sollte. Greetz, ThY |
AW: Revisionssystem einführen
Zitat:
Und man kann mit dem Rechtesystem von SubVersion sehr wohl verhindern, dass in den tags, welches aus Sicht von SVN auch nur ein Verzeichnis ist, von jedem rumgeschrieben werden darf. Somit kannst Du das einem Verantwortlichen übertragen Versionen abzuschliessen. Das geht sogar so weit, dass Du bestimmten Kollegen bestimmte wichtige Unterverzeichnisse im Programm verbieten kannst, damit die nichts "kaputt committen". Hab Deinen Post jetzt noch 2 x gelesen und denke ich verstehe jetzt auch den Unterschied auf den Du abzielst. Dann brauchst Du für den Maintainer aber wohl jemanden der genau abschätzen kann, was er dort zusammenwirft ohne dass andere Stellen darunter leiden. Dafür das Endprodukt für das tagging vorzubereiten haben wir einen festen Testablauf des Programmes und eine QS. |
AW: Revisionssystem einführen
Für mich stellt sich nur noch die Frage, was denn gegen ein Versionssystem spricht?
Es gibt genug freie und gute Lösungen, mit TortoiseSVN & Co. ist der Umgang damit ganz bequem und die technisch-organisatorischen Vorteile wurden ja bereits erwähnt. Ich finde es vor allem auch sehr gut, zu wissen, dass eine gültige Version auf dem Server liegt und ich habe nicht mehr 25 Versionen auf 5 Rechnern und 20 Verzeichnissen. Ansonsten könnte ich mir nicht mehr vorstellen, je nochmals ohne Versionssystem zu arbeiten. Rainer |
AW: Revisionssystem einführen
Zitat:
|
AW: Revisionssystem einführen
Zitat:
![]() |
AW: Revisionssystem einführen
Zitat:
|
AW: Revisionssystem einführen
Ich sehe in der Versionsverwaltung auch nur Vorteile -- und da auch nur Vorteile von Git gegenüber dem SVN ;)
Aber auch ich will meinen Kopf mal etwas zum qualmen bringen: - Aufwand zur Einrichten eines Repos -> meist Admin notwendig - Liegt der Server mal flach gibts Probleme bei der Synchronisierung. (klar, ich weiß, selbst hierfür gibts Lösungen) - Fehlende Integrationen in IDEs. (Git in Delphi z.B.) Bzgl. dem Autoversionierung: Wie erstellt das denn Kommentare? Ich habs aber nicht näher angeschaut! Fazit: Es lohnt sich auf jeden Fall einzusetzen. Git kann auch ohne Server lokal versionieren :) (nur um ein wenig Werbung zu machen) |
AW: Revisionssystem einführen
CVS ist doof, seine Merging-Fähigkeiten räudig, aber wir setzen es noch für diverse Dinge ein. CVS hat aber einen Vorteil, wenn man das gute alte System einsetzt: man kann die RCS-Dateien modifizieren, umbenennen, verschieben, ... ganz so daß bekannte Funktionen anderer VCS nachgestellt werden können. (Dies kann man aber auch als Nachteil ansehen ... am Ende ist es aber bei allen mir bekannten VCS und DVCS möglich Manipulationen in einem gewissen Rahmen vorzunehmen.)
SVN ist besser, aber meines Erachtens zeigen sich die Schwächen sobald man die neueren DVCS (Git, Mercurial, Bazaar) erstmal angetestet hat. Wir setzen SVN bei uns aber dennoch ebenfalls ein. Mercurial ist derzeit mein Favorit, insbesondere weil Git zusammengeschustert ist (kein ursprüngliches einheitliches Konzept erkennbar und ein Mischmasch aus Skripten und anderen "Teilen") und Bazaar mir noch nicht erwachsen erscheint. Allerdings würde ich Bazaar fast ohne Zögern ebenfalls einsetzen. Git und Hg setzen wir in unseren Teams auch ein und ich weiß, daß das Virenlabor auch mit Bazaar arbeitet. Will heißen: alle funktionieren hinreichend gut. Ich kann nur empfehlen (so habe ich es gemacht) diverse VCS gegeneinander zu vergleichen und dabei die wichtigsten Fälle in der eigenen Umgebung durchzuspielen. Bei mir kam Mercurial als Sieger raus, aber ich bin mir sicher daß unter anderen Umständen auch Bazaar infrage käme. SVN und CVS haben aber noch einen weiteren Nachteil. Sie belassen Dateien nicht so wie sie sind. Das erkennt man insbesondere bei sogenannten Textdateien. Ein echtes VCS darf einfach nicht mit den Daten herumspielen. Aber nun zu dem Grund warum wir uns Zeit lassen eine Umstellung vorzunehmen. Man kann CVS und Hg, bzw. SVN und Hg kombinieren. Klingt seltsam? Nunja, das Gute an DVCS ist, daß sie die komplette Versionshistorie bieten. Alle von ihnen kommen mit sehr guten Konvertierungswerkzeugen. Aber ich will auf etwas anderes hinaus. Man kann eine CVS/SVN Arbeitskopie auch zu einem DVCS-Repo machen, mit Hg mache ich dies sehr häufig. Dann hat man sozusagen ein "duales System". Hg bietet auch den Befehl addremove um einfach alle Dateien in einem Verzeichnis zum Repo hinzuzufügen. Dazu sollte man einzig alle CVS/SVN-Metadateien in .hgignore eintragen und dann "hg addremove" laufen lassen. Dann hat man alle Dateien auch in dem neuerstellten Hg-Repo und kann dort bequem und mit Hg arbeiten, branchen, mergen etc und später bei Zufriedenheit einen Zwischenstand in CVS/SVN einchecken. Eine komplett auf Hg basierende Lösung wäre zwar dennoch besser, aber egal ... so hat man lokal (oder auf beliebig vielen Rechnern) alle Vorteile von Hg, inklusive Queue-Management und muß dennoch nicht jemanden überzeugen auf ein anderes VCS zu wechseln. |
AW: Revisionssystem einführen
Also ich kann mich persönlich bis jetzt noch nicht mit DVCSen anfreunden.
Der Punkt der mir da (Systembedingt) absolut fehlt, ist der zentrale Server an dem zwangsläufig alle Sourcen jederzeit zur Verfügung stehen und gesichert werden können. Lokale Stände sind für mich nicht gesichert und damit nicht tolerabel. Gibt es da evtl. inzwischen abhilfe? Die andere Sache ist das Tooling. Für welche Systeme gibt es denn inzwischen gescheite Gui's (=mindestens so gut wie TortoiseSVN und Ankh)? Bei Git braucht man dazu dann ja noch Cygwin etc. - und das ist mir alles zu aufwändig dafür, dass ich auf den grössten Vorteil von SVN, nämlich die zentrale kontrollierte Datenhaltung, verzichten müsste. |
AW: Revisionssystem einführen
Zitat:
... seine Entwickler muß man allerdings soweit im Griff haben, daß sie regelmäßig einchecken/pushen. Wobei ich da verschiedene Typen kennengelernt habe und eben leider auch den der nur alle paar Tage oder Wochen Sachen ins CVS/SVN eincheckt. Die Arbeit wäre auch verloren und dank CVS/SVN ist das Mergen auch nicht gerade einfach wenn die Entwicklung auf dem Zweig inzwischen weiterging. In Mercurial bekomme ich Merge-Konflikte als Benutzer höchst selten zu sehen, da alle Metadaten über die Abstammung der aktuellen und zusammenzuführenden Dateien mit in den Vorgang einfließen und deshalb eine insgesamt weit bessere Zusammenführung als bei den traditionellen VCS ermöglichen. Und von "hunk selection" und "shelving" haben wir da noch nichtmal gesprochen. Zitat:
Der größte Vorteil von SVN, "die zentrale kontrollierte Datenhaltung", wird auch nur dann erreicht wenn deine Entwickler mitspielen. Automatisches einchecken ist nämlich auch bei den klassischen VCS problematisch, wenn der Code auf dem aktuellen Zeig stabil sein soll etc. Und da eine willentliche Intervention - nämlich das Einchecken - ohnehin notwendig ist, kann man a.) per Konvention einen zentralen Server festlegen auf den manuell alles geschoben wird und/oder b.) eine Erweiterung (bei Hg in Python) schreiben welche das Hochschieben evtl. direkt nach dem Commit automatisiert. Sehe ich also nicht als Problem. Ich will dir nicht zu nahe treten, aber das große "Gegenargument" klingt wie jene die ich mir bisher anhören mußte wenn es um die Einführung von (nahezu beliebigen) Änderungen ging. Die meisten Leute hassen Veränderungen - einige wenige vielleicht aus Prinzip, aber meiner Erfahrung nach ein großer Teil auch weil sie mit Lernen verbunden sind und damit die "Spurrinnen" in den Hirnen der Verweigerer allzu deutlich sichtbar machen würden. Die Vorteile von DVCS sind sicher bei FOSS-Programmierung noch deutlicher ausgeprägt als bei proprietären Projekten, aber sie sind dennoch auch für den kommerziellen Einsatz vorhanden und (für mich und diverse Kollegen) überzeugend. |
AW: Revisionssystem einführen
Ich bin gerade dabei Testweise Mercurial nun auf meiner Workstation einzusetzen. Dies klappt soweit auch so wie ich es erwartet habe. Nur eine IDE-Integration wäre sehr nett. So wie z.b. die Integration von TortoiseSVN, da TortoiseHG allerdings einen "Overlay Icon Server" nutzt sieht das etwas kritisch aus. Ebenso habe ich kein TortoiseHG Menü wenn ich z.b. mit TotalCommander arbeite was dadurch schon eine deutliche Workflow-Unterbrechung mitsich zieht (Explorer auf machen, Ordner browsen, Rechtsklick, Commit). Hat da jemand einen Tipp für mich dies zu verbessern? (Sorry das ich hier etwas vom ursprünglichen Thema abkomme, war mir aber nicht Wert dafür ein neues aufzumachen)
Gz, ThY |
AW: Revisionssystem einführen
Du kannst die doch unter Tools in der IDE ein paar Befehle einbauen die die HG.EXE aufrufen mit den nötigen Parametern.
|
AW: Revisionssystem einführen
Zitat:
|
AW: Revisionssystem einführen
Zitat:
Zitat:
Ich werde dann morgen mal in gemütlicher Runde das Thema bearbeiten und hoffe auf ein positives Resultat. Greetz, ThY |
AW: Revisionssystem einführen
Zitat:
Gruß aus dem Norden. |
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 19:38 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