Da ich derzeit Schwierigkeiten habe, IBM Rational ClearCase zu lernen, würde ich gerne Ihre professionelle Meinung hören.
Ich interessiere mich besonders für Vor- und Nachteile im Vergleich zu anderen Versionskontrollsystemen wie Subversion oder Git.
version-control
clearcase
Benedikt
quelle
quelle
Antworten:
Einen guten Vergleich zwischen ClearCase und Git finden Sie in meiner SO-Antwort:
" Was sind die grundlegenden ClearCase-Konzepte, die jeder Entwickler kennen sollte? ", Die einige wesentliche Unterschiede (und einige Mängel von ClearCase) veranschaulichen.
Dateizentrische Operationen
Das wichtigste Manko von ClearCase ist der alte " dateizentrische " Ansatz (im Gegensatz zu " repository -zentriert " wie in SVN oder Git oder Perforce ...).
Das bedeutet, dass jedes Auschecken oder Einchecken Datei für Datei erfolgt. Die Atomizität des Betriebs liegt auf Dateiebene.
Kombinieren Sie dies mit einem sehr ausführlichen Protokoll und einem Netzwerk mit möglicherweise mehreren Knoten zwischen der Entwickler-Workstation und dem VOB-Server, und Sie können einen ziemlich langsamen und ineffizienten Dateiserver erhalten (der im Kern ClearCase ist).
Datei-für-Datei-Operationen bedeuten: langsame rekursive Operationen (wie rekursives Auschecken oder rekursives "Hinzufügen zur Quellcodeverwaltung" , auch von
clearfsimport
).Ein schnelles LAN ist obligatorisch, um die Nebenwirkungen dieses gesprächigen Protokolls zu mildern.
Zentralisiertes VCS
Der andere zu berücksichtigende Aspekt ist der zentralisierte Aspekt (obwohl er mit seiner replizierten VOB-Funktion für mehrere Standorte "verteilt" werden kann).
Wenn das Netzwerk keinen Zugriff auf die VOBs zulässt, können die Entwickler:
Teure verteilte VCS-Option
Sie können eine verteilte VCS-Funktion verwenden, indem Sie einen Vob replizieren.
Aber:
Alte und nicht benutzerfreundliche GUI
UCM-Inkonsistenzen und in Kohärenz
Wie unter " So nutzen Sie die Funktionen von ClearCase " erwähnt, sind dynamische Ansichten großartig (eine Möglichkeit, Daten über das Netzwerk anzuzeigen, ohne sie auf die Festplatte kopieren zu müssen), aber die Hauptfunktion bleibt UCM : Sie kann eine echte Bereicherung sein, wenn Sie dies haben großes Projekt mit komplexem Workflow.
Einige Mängel an dieser Front:
Eingeschränkte Richtlinien mit Base ClearCase
Wenn Sie ClearCase ohne UCM verwenden, müssen Sie eine Richtlinie definieren, um:
cleartool find
" Anfragen reduziert ...Keine Bewerbungsrechte
Die ClearCase-Rechteverwaltung basiert vollständig auf Systemrechten.
Das bedeutet, dass Sie Ihren Benutzer bei der richtigen Systemgruppe registrieren müssen. Dies ist nicht immer einfach, wenn Sie ein Ticket für Ihren IT-Service eingeben müssen, damit er sich ordnungsgemäß registrieren kann.
Fügen Sie dazu eine heterogene Umgebung hinzu (Benutzer unter Windows und Server unter Unix), und Sie müssen Ihren Benutzer sowohl unter Unix als auch unter Windows registrieren! (mit demselben Login / Gruppennamen). Es sei denn, Sie stellen eine Art LDAP-Korrespondenz zwischen die beiden Welten (wie Centrify ).
Keine erweiterte API
cleartool
" ist die ClearCase-Befehlszeilenschnittstelle). Dies bedeutet, dass jedes Skript (in Perl oder einer anderen Sprache) darin besteht, die Ausgabe diesercleartool
Befehle zu analysieren. )Anzeigen von Speichern, die nicht einfach zentralisiert / gesichert werden können
Die Ansichtsspeicher entsprechen der ".svn" von SubVersion, außer dass in allen Verzeichnissen eines SubVersion-Arbeitsbereichs nur ein "Ansichtsspeicher" pro Ansicht anstelle vieler .svn vorhanden ist. Das ist gut.
Was schlecht ist, ist, dass jede Operation innerhalb einer Ansicht (ein einfaches "
ls
", Auschecken, Prüfen, ...) eine Netzwerkanforderung an den view_server- Prozess auslöst , der Ihren Ansichtsserver verwaltet.2 Optionen:
Der erste Modus bedeutet: Sie müssen sich Ihre laufenden Arbeiten sichern (private Dateien oder ausgecheckte Dateien).
Der zweite Modus bedeutet: Ihre Workstation ist möglicherweise nicht verfügbar. Sie können sich einfach bei einer anderen anmelden und Ihre Ansichten zurückerhalten (für die private Ausführung ausführen) Dateien einer Schnappschussansicht)
Nebendiskussion über dynamische Ansichten :
Um den Aspekt "dynamische Ansicht" zu erweitern, hat er einen Vorteil (es ist dynamisch) und einen Nachteil (es ist dynamisch).
Dynamische Ansichten eignen sich hervorragend, um eine einfache Umgebung einzurichten, in der eine kleine Entwicklung schnell von einem kleinen Team gemeinsam genutzt werden kann. Bei geringem Entwicklungsaufwand kann eine dynamische Ansicht zwei oder drei Entwicklern helfen, ständig miteinander in Kontakt zu bleiben und sofort zu sehen, wann das Festschreiben unterbrochen wird etwas in den anderen Ansichten.
Für komplexere Entwicklungsanstrengungen ist die künstliche "Isolation" der Snapshot-Ansicht vorzuziehen (Änderungen werden nur angezeigt, wenn Sie Ihre Snapshot-Ansicht aktualisieren oder "aktualisieren").
Für einen wirklich unterschiedlichen Entwicklungsaufwand oder Kurs ist immer noch ein Zweig erforderlich, um eine echte Code-Isolation zu erreichen (irgendwann sind Zusammenführungen erforderlich, die ClearCase sehr gut, wenn auch langsam, Datei für Datei handhabt).
Der Punkt ist, dass Sie beide aus den richtigen Gründen verwenden können.
Hinweis: Mit kleinem Team meine ich nicht "kleines Projekt". ClearCase eignet sich am besten für große Projekte. Wenn Sie jedoch dynamische Ansichten verwenden möchten, müssen Sie " Task-Zweige " einrichten , um einen geringen Entwicklungsaufwand pro Zweig zu isolieren : Auf diese Weise ein "kleines Team" (eine Teilmenge Ihres großen Teams) ) kann effizient arbeiten und seine Arbeit schnell zwischen seinen Mitgliedern teilen.
Wenn Sie dynamische Ansichten in einem "Haupt" -Zweig verwenden, in dem jeder etwas tut, würde jedes Einchecken Sie "töten", da dies einige "Build-Pausen" ohne Bezug einführen könnte mit Ihrer aktuellen Entwicklungsanstrengung.
Das wäre dann eine schlechte Verwendung dynamischer Ansichten, und das würde seine anderen Verwendungen vergessen:
Die direkte Entwicklung in einer dynamischen Ansicht ist nicht immer die beste Option, da alle (nicht ausgecheckten) Dateien über das Netzwerk gelesen werden .
Das bedeutet, dass auf die von Ihrer IDE benötigte DLL, JAR oder Exe über das Netzwerk zugegriffen wird, was den Kompilierungsprozess erheblich verlangsamen kann.
Mögliche Lösungen:
quelle
Die Kosten sind ein ziemlich offensichtlicher Nachteil. Nicht nur die Lizenzkosten, sondern auch die Kosten für das Gehalt eines ClearCase-Gurus. Fast jedes Unternehmen, von dem ich weiß, dass es ClearCase verwendet, scheint mindestens eine Person zu haben, deren einziger Zweck darin besteht, das widerspenstige Tier zu zähmen.
Die Tatsache, dass es kompliziert genug ist, eine Vollzeit-Nanny zu benötigen, ist ebenfalls besorgniserregend.
quelle
Ein absoluter Albtraum eines Systems. Ich wünschte, wir könnten zu VSS zurückkehren! (Egal , ob es sich um ein modernes Versionsverwaltungssystem wie Subversion oder Git handelt!)
Im Grunde ist es langsam, kompliziert und höllisch unzuverlässig. Oh, und habe ich schon erwähnt, dass es lächerlich teuer ist ? Die einzige Möglichkeit, es zu verkaufen, besteht darin, mit Entscheidungsträgern zu sprechen, die das Produkt noch nie verwendet haben und es niemals tun werden! Ich bin mir ziemlich sicher, dass kein Entwickler auf der Welt es jemals kaufen würde.
quelle
undo checkout
" allem. Hinweis: Für Zusammenführungen, die als kompliziert angesehen werden (aufgrund eines wichtigen Zeitablaufs seit der letzten Zusammenführung), kann ein "Zusammenführungszweig" eine gute Option sein, um den Zusammenführungsaufwand zu isolieren. Sobald dort alles konsolidiert ist, schließt eine einfache Zusammenführung mit dem Entwicklungszweig den Prozess ab (Hinweis im Hinweis: Dieser letzte Hinweis ist nicht ClearCase-spezifisch und kann für alle VCS-Tools gelten).Atomic Commits und Changesets sind meine größten Probleme mit ClearCase. Angenommen, Sie checken fünf Dateien im Rahmen einer Fehlerbehebung oder eines Refactorings ein. Dann wird festgestellt, dass etwas durcheinander geraten ist und Sie zurückkehren müssen. Viel Glück beim Finden der fünf Dateien und der jeweiligen Version . Aber machen wir einen Schritt zurück. Sie haben gerade die Bearbeitung dieser fünf Dateien abgeschlossen und es ist Zeit, ein Commit durchzuführen. Die ersten vier gehen ganz gut durch. Letzteres erfordert eine massive Zusammenführung. Die anderen vier Dateien sind bereits eingecheckt. Sie warten nicht darauf, dass Sie die erforderlichen Änderungen in der letzten Datei vornehmen. Ich hoffe sehr, dass niemand aktualisiert wurde oder eine dynamische Ansicht verwendet. Ein Server für die kontinuierliche Integration wird ebenfalls ausfallen.
Manchmal erstellen wir ein ganz neues Verzeichnis mit Dateien, die eingecheckt werden müssen, aber wir möchten sie erst einchecken, wenn sie fertig sind. Es ist früh und alles ist immer noch volatil. Warum also Dinge einchecken, die Sie möglicherweise sehr bald löschen werden? OK, soweit gut. Jetzt ist es Zeit zum Einchecken. Sie fügen den neu erstellten Ordner der Quellcodeverwaltung hinzu. Nun, ClearCase ist nicht rekursiv, daher wird nur dieser einzelne Ordner eingecheckt. Mit SVN werden dieser Ordner und alles darunter hinzugefügt, wie Sie möchten. Der Entwickler muss daran denken, alles hinzuzufügen, da sonst viele Dateien fehlen.
ClearCase besitzt die Dateien und Ordner, sodass Sie nichts ändern können, es sei denn, Sie haben es zuerst ausgecheckt. Das Eclipse-Plugin nimmt hier viel Ärger weg. Ich kann Ihnen nicht sagen, wie oft ich eine Datei in vi geöffnet habe, um eine schnelle Änderung vorzunehmen, nur um festzustellen, dass ich vergessen hatte, sie zuerst auszuchecken. Das Auschecken ist auch nicht rekursiv.
Updates können ohne Änderungssätze schmerzhaft langsam sein. Wenn Sie mit einer Snapshot-Ansicht aktualisieren, wird jede Datei aktualisiert, nicht nur die geänderten Dateien. Ich habe an einem Projekt mit mehr als 20.000 Dateien gearbeitet. Ich würde eine Remote-Verbindung zu meinem Arbeitscomputer herstellen, das Update starten und dann zur Arbeit fahren. bekomme Kaffee; Geh zu meinem Schreibtisch, während es fertig war. Das mag übertrieben klingen, ist es aber leider nicht.
Dynamische Ansichten sind schrecklich, wenn Sie nicht in einem sehr kleinen Team sind. Und wenn dies der Fall ist, warum haben Sie dann überhaupt ClearCase? Ich habe unzählige Ansichten von Menschen gesehen, die abgespritzt wurden, weil jemand Dateien eingecheckt hat, die die Ansichten aller anderen gebrochen haben. Sie sollten Konflikte immer in Ihrer eigenen Ansicht aktualisieren und zusammenführen. Auf diese Weise wirken sich die Änderungen nur auf Sie aus. Bei einer dynamischen Ansicht können Sie nicht zusammenführen, bevor Sie wieder nach oben drücken. Sie verpflichten sich nur und hoffen.
Ich weiß, dass die Kosten wahrscheinlich kein großes Problem sind, aber die Entwickler, die das Geld für das Unternehmen verdienen, würden die 50.000 bis 100.000 US-Dollar (abhängig von der ClearQuest-Lizenz, die häufig hinzugefügt wird) entweder für unterhaltsame Veranstaltungen oder für neue Geräte ausgeben ( Stühle, Monitore usw.). IBM empfiehlt Mitarbeiter, die ClearCase am Laufen halten. Warum nicht diese Leute dazu verwenden, Einnahmen für das Unternehmen zu generieren, anstatt sicherzustellen, dass die Dinge nicht abstürzen und brennen?
Einige der Gründe, die ich gehört habe, weil ich nicht gewechselt habe:
Das einzige, was ClearCase besser macht als der Rest, ist das Verzweigen einzelner Dateien, während die anderen auf dem gleichen Weg wie ein anderer Zweig bleiben.
quelle
Alles, was ich in Clearcase getan habe, scheint immer schwierig zu sein . Während ich diesen Eindruck bei anderen Systemen noch nie hatte (außer vielleicht gelegentlich bei CVS).
Ich habe SVN, CVS, Clearcase und Mercurial verwendet.
quelle
Meine Erfahrung mit ClearCase war eine Katastrophe, und ich werde Dons Aussage folgen, dass ein Experte erforderlich ist - leider hatten wir mehr als einen. Ich hatte Erfahrung mit CVS und anderen Versionskontrollsystemen, war mit den Konzepten vertraut, fand die ClearCase-Dokumentation jedoch unverständlich und musste mehrmals um Hilfe bitten. Verschiedene Experten gaben mir widersprüchliche Ratschläge bis zu dem Punkt, an dem wir die CD tatsächlich kaputt gemacht haben . Das heißt, nachdem ich einen ClearCase-Befehl in einer UNIX-Shell ausgegeben habe, ist der Befehl "cd" mit einer Fehlermeldung fehlgeschlagen.
Die grundlegende Aufgabe eines Versionskontrollsystems ist wirklich ziemlich einfach. Ehrlich gesagt denke ich, dass ein halbes Dutzend Befehle ausreichen sollten, wenn ein Dateischema verwendet wird, das gut mit anderen zusammenarbeitet. Für mich sieht ClearCase aus wie das Ergebnis eines Marketing-Managers, der die Dinge absichtlich kompliziert, damit das Produkt raffiniert und leistungsstark aussieht. Ich habe gehört, dass es so konfiguriert werden kann, dass es sich auf einfache, sichere und zuverlässige Weise verhält, aber auch dies erfordert die Dienste eines Experten - sofort ist es wie ein motorisiertes Schweizer Taschenmesser.
quelle
Alles, was ich in Bezug auf ClearCase erlebt habe, ist ineffizient, hässlich, übermäßig komplex, langsam, verwirrend, teuer und unpraktisch.
Es scheint Manager und Ingenieure anzulocken, die einfach alles falsch gemacht haben.
Verdammt, IBM und Rational müssen erstaunliche Verkäufer haben, um solch ein beschissenes Produkt zu verkaufen.
quelle
Wir migrieren gerade aus vielen der hier genannten Gründe von CC auf Git. Ich möchte einen Grund hinzufügen, sich von CC oder anderen kommerziellen Versionsverwaltungssystemen fernzuhalten.
Ihre wichtigen Geschäftsdaten sind Geiseln von ClearCase. Du kannst es nicht rausholen.
Ihre wichtigen Geschäftsdaten sind der Code, der Versionsverlauf und alle Metadaten wie Commit-Kommentare, wer wann eingecheckt hat.
Alle Software hat eine begrenzte Nutzungsdauer. Sie sollten sich immer fragen, wenn Sie ein neues System einführen, das wichtige Geschäftsdaten verschluckt, ob es sich um Code, Fehler, Kundendaten handelt oder nicht: Wie bekomme ich meine Daten wieder heraus? Wenn Sie diese Frage nicht beantworten können, sollten Sie dieses System nicht einführen.
Bei der Migration haben wir den größten Teil unserer Geschichte und alle unsere Metadaten verloren. Im Wesentlichen haben wir nur einen Verlauf, der den veröffentlichten Versionen entspricht, aber Informationen darüber, welche Änderungen als Reaktion auf Kundenanfragen vorgenommen wurden, gehen verloren (wir haben diese Daten im Kundensupport- und Bug-Ticket-System, sodass sie nicht vollständig verloren gehen, sondern die Kopplung an der Quellcode ist weg).
Dies wird kurz- bis mittelfristig zwischen einem Ärgernis und einem Problem für uns liegen. In ein paar Jahren ist es nicht mehr wichtig, aber vielleicht für 1-3 Jahre wird es wichtig sein.
(Es gibt kommerzielle Tools, um CC auf andere SCM zu migrieren, aber sie wurden als nicht angemessen für unsere Anforderungen angesehen, und ich bezweifle, dass dies machbar gewesen wäre. Der minimale Export, den wir durchgeführt haben, hat lange genug gedauert.)
Die gewonnene Erkenntnis lautet: Vertrauen Sie niemals wichtige Geschäftsdaten proprietären Systemen an.
quelle
Keine atomaren Commits
Sobald Sie Dateien eingecheckt haben, ist es sehr schwierig, zu einem bestimmten Status zurückzukehren, da atomare Commits nicht unterstützt werden. Beim Einchecken mehrerer Dateien erhält jede Datei eine neue Revision (ähnlich wie CVS) und nicht das Einchecken selbst. Ich denke, dies ist eine entscheidende Funktion, da Sie kaum einzelne Dateien zurücksetzen möchten, sondern Festschreibungsaktionen abschließen möchten (die Aufgaben zuordnen sollten). Mit ClearCase können Sie nur mithilfe von Labels zu bestimmten Status zurückkehren. In der Praxis ist die Verwendung von ClearCase-Etiketten für jeden Check-in übertrieben und wird daher nicht durchgeführt.
Beschissene Benutzeroberfläche
Die GUI von ClearCase Explorer ist nur ein großer Witz. Schrecklich in der Benutzerfreundlichkeit und hässlich aussehend. Verschiedene und oft notwendige Funktionen werden nicht bereitgestellt (z. B. rekursives Einchecken von bearbeiteten Artefakten). Das mit cygwin verwendete Befehlszeilen-Tool cleartool ist viel besser, aber einige Dinge sind nicht verfügbar, wie das rekursive Hinzufügen neuer Dateien / Ordner zur Quellcodeverwaltung. Ich muss mich auslachen, wenn ich ein 50 Zeilen Code langes Skript lese, um dies zu umgehen.
Hoher Verwaltungsaufwand
Die Verwaltung von ClearCase Beast ist alles andere als offensichtlich oder leicht (im Gegensatz zu anderen SCM-Systemen wie CVS, Subversion oder Git). Erwarten Sie einige engagierte ClearCase-Experten, um den Betrieb aufrechtzuerhalten.
Schreckliche Leistung
Nichts ist schlimmer, als Ihre Entwickler warten zu lassen, während sie mit dem SCM-Tool verbunden sind. Es ist, als würden Sie mit aktivierten Handbremsen fahren. Es verlangsamt Ihr Gehirn und auch Ihre Arbeit. Das Abrufen neuer Dateien in Ihre Snapshot-Ansicht dauert für 10K-Artefakte etwa 30 Minuten. Ein Update (es wurden keine Artefakte geändert) für dieselbe Menge dauert ungefähr 5 Minuten. Wenn Sie viel experimentieren und zwischen verschiedenen aktuellen Ansichten wechseln, müssen Sie viel warten. Es wird noch schlimmer, wenn Sie an Dateien arbeiten und diese einchecken oder aktualisieren möchten. Das Auschecken, Einchecken und Hinzufügen zu den Quellcodeverwaltungszyklen dauert etwa 10 bis 15 Sekunden, was offensichtlich ein Albtraum ist. Es wird sehr ärgerlich, wenn Sie Typen oder Methoden umbenennen / verschieben (viele Dateien können betroffen sein).
Mangelnde Unterstützung der verteilten Entwicklung
Heutzutage ist Softwareentwicklung oft eine verteilte Sache (Entwickler sind auf der ganzen Welt verteilt und arbeiten an demselben Produkt / Projekt). ClearCase ist definitiv nicht dafür geeignet, da es für Offline-Arbeiten schlecht geeignet ist. Für das Auschecken (Aktion, bevor Sie eine Datei / einen Ordner bearbeiten können) müssen Sie mit dem Netzwerk verbunden sein. Hier können Sie die Hijack-Option verwenden, dies ist jedoch eher eine Problemumgehung (Sie entsperren im Grunde nur die Datei im Dateisystem). Wenn Ihre Entwicklungsstandorte weit von Ihrem ClearCase-Server entfernt sind, kann sich die Latenz beim Ein- und Auschecken sogar so stark erhöhen, dass sie überhaupt nicht mehr verwendet werden kann. Es gibt Problemumgehungen dafür wie die Verwendung von ClearCase Multisite (scm DB-Replikatechnologie), aber Sie müssen dafür extra bezahlen und sind für die Verwaltung nicht trivial.
Git als Alternative
Obwohl ich ein großer Fan und Unterstützer von Open Source bin, bin ich immer noch bereit, Geld für gute Software zu bezahlen. Aber wenn ich mir das IBM-Monster ClearCase anschaue, würde ich mein Geld nicht hier investieren, es hat all diese diskutierten Mängel, und außerdem scheint IBM kein Geld zu investieren, um sein Produkt signifikant zu verbessern. Kürzlich habe ich mir einen Git-Scm angesehen, der sehr gut aussieht, insbesondere wegen seiner Verzweigungs- und Zusammenführungsfunktionen, bei denen ClearCase seine Hauptstärken hat.
Diese Informationen stammen von http://www.aldana-online.de/2009/03/19/reasons-why-you-should-stay-away-from-clearcase/
quelle
Möglicherweise die schlechteste Software, die jemals hergestellt wurde. Ich werde nicht für eine Firma arbeiten, die irgendetwas Rationales verwendet. Abgesehen davon, dass CC bei dynamischen Builds häufig abstürzt und meine Workstation häufig neu startet. Was passiert, wenn Sie etwas in die Quellcodeverwaltung verschieben und CC das tut, was es am besten kann, Absturz? Wird Ihr Code dann verloren + gefunden, vielleicht irgendwo gesichert? Nein, es ist für immer weg. Wenn Sie sich also jemals in der schrecklichen Situation befinden, diese riesige teure Software zu verwenden, bewahren Sie Duplikate von allem auf. Gute Arbeit Rational / IBM. Möglichkeit, den wichtigsten Teil der Quellcodeverwaltung, die Zuverlässigkeit, zu erfassen. Stirb langsam.
quelle
Nachteile von ClearCase - eine Ergänzung zu dem ausführlichsten Beitrag hier.
Das Merge-Tool lohnt sich nicht. Es hilft dir kaum, erinnert sich an keine Entscheidungen, die du getroffen hast, es ist nur ein verherrlichter Unterschied.
Das Zusammenführungstool muss Verzeichnisse auschecken, um sogar zu prüfen, ob sie zusammengeführt werden müssen. Es ist ein bisschen verrückt.
Ich verwende BitKeeper bei der Arbeit (nehmen wir an, Git), und das Zusammenführen von zwei Repositorys, selbst wenn es Konflikte gibt, ist selbst mit der Befehlszeile so trivial und benutzerfreundlich, während ClearCase mit Tonnen von GUI-Tools ein langer und mühsamer Prozess ist, der auch äußerst fehleranfällig ist .
Alle GUI-Tools erfordern eine Menge Latenz. Selbst um zu sehen, was in einer Datei getan werden kann, ist eine Hochgeschwindigkeitsverbindung erforderlich. Das Klicken mit der rechten Maustaste in das ClearCase-Tool auf eine Datei, die von zu Hause aus funktioniert, kann aufgrund der extrem hohen Netzwerkanforderungen ein oder zwei Minuten dauern, wenn das Hochgeschwindigkeitsinternet verfügbar ist.
Jemand kann das Repository oder das Einchecken komplett durcheinander bringen, wenn sich seine Ansichtsspezifikation von der des Teams unterscheidet. Was ziemlich verrückt ist, dass niemand einfach einen Zweig auschecken kann; Sie benötigen die entsprechende Ansichtsspezifikation, die ihnen im Übrigen das richtige Material bietet. Das ganze Konzept kann schön und flexibel sein, aber in 99% der Fälle verursacht es nur große Schmerzen. Habe ich erwähnt, dass Sie Ihre Spezifikation nicht über Microsoft Outlook per E-Mail versenden können, da CC-Tools UTF-8 nicht akzeptieren und Sie sie daher nicht kopieren und einfügen können?
Ich kann absolut nichts Nettes über CC sagen. Ich habe es 2 Jahre lang bei 2 Unternehmen verwendet und es sofort fallen lassen, wobei ich mich die ganze Zeit über glücklich fühlte. Es ist auch unmöglich, zu Hause nur mit Ihren eigenen Projekten zu experimentieren, sodass Sie zu Hause immer noch SVN oder Git lernen und gezwungen sind, ClearCase-Schmerzen bei der Arbeit zu überwinden. Niemand, den ich kenne, hat CC jemals freiwillig eingesetzt. Sie verwenden es nur, weil einige Manager bei der Arbeit entschieden haben, dass CC der Weg zur Erlösung ist, und alle gezwungen haben, dorthin zu migrieren. Tatsächlich ist meine letzte Firma von CVS zu ClearCase und nach einem Jahr von ClearCase zu SVN migriert. Es war so gehasst.
ClearCase ist nicht nur eine Sache, bei der Sie Nein sagen. Es ist, als würde man in einem Haus leben, das von Ameisen befallen ist. Jede Ameise ist bestenfalls eine kleine Unannehmlichkeit, aber der Befall wird Sie verrückt machen.
quelle
Ich versuche hier ein paar Kommentare in einem tatsächlichen Beitrag zusammenzufassen. Ich bin nicht wirklich hier, um Sie davon zu überzeugen, dass einer besser ist als der andere, außer um ein paar Punkte zu machen:
ClearCase ist ein gutes Werkzeug, aber es ist kompliziertWerkzeug. Daran führt kein Weg vorbei - es gibt keinen "Easy Install" -Modus. :-) Aus technischer Sicht gibt es nichts, was Git oder SVN nicht können, was ClearCase nicht kann (obwohl die Terminologie oft anders ist, da Open Source-Projekte dazu neigen, nur eine neue Taxonomie zu erfinden, wo es bereits eine gab), aber einige Dinge sind definitiv einfacher / schwieriger für ein bestimmtes System, abhängig von ihrem Design. ClearCase-Snapshot-Ansichten sind im Grunde dasselbe, was Sie hätten, wenn Sie ein Repository von SVN oder CVS ausgecheckt hätten - es ist eine lokale Kopie des Quellcodes auf Ihrem Computer, mit Zeigern zurück auf den zentralen Server, damit Tools den Versionsverlauf abfragen können. usw. Sie können mit diesen Ansichten arbeiten, ohne dass eine Netzwerkverbindung zum ClearCase-Server besteht, sobald sie erstellt wurden, und Sie können sie "recyceln". Sie vermeiden, dass Sie Ihr gesamtes Repository erneut herunterladen, wenn Sie beispielsweise in einem anderen Zweig arbeiten möchten. "Dynamische Ansichten" sind im Grunde eine Erfindung von ClearCase und der Standardbetriebsmodus für ein LAN. Sie sehen genauso aus wie das Auschecken eines SVN-Repositorys, kopieren jedoch erst dann Dateien, wenn Sie Änderungen vornehmen. Auf diese Weise ist die Ansicht sofort verfügbar, kann jedoch offensichtlich nicht bearbeitet werden, wenn der Haupt-Clearcase-Server nicht verfügbar ist und es unangenehm ist, über eine Verbindung mit hoher Latenz zu arbeiten. Sie können auch als Netzwerklaufwerk auf jedem Computer mit Zugriff auf den Server bereitgestellt werden, auf dem sie erstellt wurden. Wenn Ihre Windows-Workstation ausfällt, können Sie sich einfach bei einem anderen Computer anmelden, Ihre Ansicht bereitstellen und abrufen zurück an die Arbeit,
Auch, und dies verdient seinen eigenen Absatz ... Clearmerge ist fast den Eintrittspreis allein wert. Es ist zweifellos das beste Zusammenführungswerkzeug, das ich je in meinem Leben verwendet habe. Ich bin der festen Überzeugung, dass sich aufgrund des Mangels an hochwertigen Zusammenführungswerkzeugen viele schlechte Praktiken in SCM entwickelt haben. Daher haben CVS-Benutzer nie gelernt, Zweige richtig zu verwenden, und diese Angst vor Verzweigungen hat sich ohne besonders guten Grund bis heute verbreitet.
Ok, alles in allem, wenn Sie nach Gründen suchen, ClearCase nicht zu verwenden, sind sie nicht schwer zu finden, obwohl ich denke, dass dies der falsche Weg ist. Wirklich, Sie sollten gute Gründe für die Verwendung von ClearCase finden müssen, keine Gründe für die NICHT-Verwendung von ClearCase. Sie sollten in jede SCM-Situation geraten, wenn Sie davon ausgehen, dass ClearCase zu viel oder zu kompliziert für den Job ist, und dann prüfen, ob Sie eine Situation haben, die Sie dazu ermutigt, es trotzdem zu verwenden. IBM- oder Rational-Logos sind kein guter Grund .. :-)
Ich würde ClearCase nicht einmal in Betracht ziehen, wenn Sie nicht zu allen folgenden Aussagen Ja sagen könnten:
quelle
Meine Erfahrung ist hauptsächlich durch CC, CVS und SVN begrenzt. Im Prinzip ist CC technologisch leistungsfähig, unternehmensfähig und durch Funktionen mit jedem modernen VCS vergleichbar. Aber es hat einige Mängel, die es in jeder menschenorientierten Umgebung unbrauchbar machen. Für prozessorientierte Umgebungen ist dies wahrscheinlich angemessener, obwohl ich bezweifle, dass solche Umgebungen für sich genommen geeignet sind. Vielleicht weiß ich es in militärischer, kosmischer oder medizinischer Software nicht. Jedenfalls glaube ich, dass es auch für diese Domänen geeignete und noch freundlichere Tools gibt.
CC ist nicht nur technisch leistungsfähiges VCS, sondern bietet auch einige entscheidende Vorteile:
Meiner Meinung nach ist ihre Verwendung mit Ausnahme der letzten begrenzt; und sie kompensieren keine Mängel. Dynamische Ansicht theoretisch gut, in der Praxis jedoch nicht immer verfügbar. Der Versionsbaum wird in anderen VCS viel weniger verwendet, während er in CC aufgrund der Verbreitung von Zweigen erforderlich ist (siehe 6). Trigger, wie ich weiß, sehr detailliert und fähig, aber ich denke, dass SVN-Hooks für die meisten praktischen Aufgaben gut genug sind. Und nun zu den Nachteilen, die hauptsächlich die Benutzerfreundlichkeit betreffen:
cleartool
(vor Version 7.1), geschweige denn dynamische Ansichten.quelle
ClearCase scheint von außen äußerst leistungsfähig zu sein. Aber wirklich, es ist nur so, dass die Anzahl der Befehle und Optionen, die Sie für den grundlegenden Workflow verwenden müssen, so hoch ist, dass diese hinter einigen Aliasnamen oder Skripten verborgen sind und Sie mit der Benutzerfreundlichkeit von Visual Source weniger leistungsfähig als CVS sind Sicher. Und jedes Mal, wenn Sie etwas komplizierteres tun möchten, als es Ihre Skripte zulassen, haben Sie ein schlechtes Gefühl im Magen.
Vergleichen Sie dies mit Git, was von außen kompliziert erscheint, aber nach einer Woche Arbeit fühlen Sie sich völlig unter Kontrolle. Das Repository-Modell ist einfach zu verstehen und unglaublich leistungsfähig. Da es leicht ist, an die Schrauben und Muttern zu gelangen, macht es tatsächlich Spaß, unter der Oberfläche Ihres täglichen Arbeitsablaufs zu graben.
Das Herausfinden einer trivialen Aufgabe, wie das Anzeigen einer Nicht-HEAD-Version einer Datei in einer Schnappschussansicht, dauerte einige Stunden, und am Ende war es ein vollständiger Hack . Auch nicht die unterhaltsame Art von Hack.
Aber in Git hat es großen Spaß gemacht, eine scheinbar komplizierte Aufgabe zu finden, wie man nur einige Änderungen interaktiv festlegt (und den Rest für später belässt), und ich habe die ganze Zeit das Gefühl, dass das VCS es mir ermöglicht, Code und zu organisieren Geschichte in einer Weise, die zu mir passt, anstatt dass Geschichte ein Unfall ist, wie wir das VCS benutzt haben. "Git bedeutet, niemals sagen zu müssen, dass du es haben solltest" .
Bei meiner Arbeit verwende ich Git für alle Arten von leichten Aufgaben, auch innerhalb von ClearCase. Zum Beispiel mache ich TDD und verpflichte mich zu Git, wenn eine Reihe von Tests bestanden werden und ich im Begriff bin, eine Umgestaltung vorzunehmen. Wenn die Aufgabe erledigt ist, checke ich bei ClearCase ein und Git hilft mir dabei, genau zu überprüfen, was ich ändere. Versuchen Sie einfach, ClearCase dazu zu bringen, einen Unterschied zwischen mehreren Dateien zu erzeugen - das kann es nicht! Verwenden Sie Google, um herauszufinden, welche verschiedenen Hacks versucht wurden, dies zu umgehen. Dies ist etwas, was die Versionskontrolle sofort tun sollte, und es sollte einfach sein! CVS hat dies seit Jahrzehnten!
quelle
Meiner Meinung nach? Einziger Grund, es zu haben? Wenn Sie RUP religiös folgen.
quelle
Die Unterstützung ist schrecklich. Wir haben seit Jahren Tickets geöffnet. Unser Eclipse-Guru hat tatsächlich einen Fehler in seinem Eclipse-Plugin lokal in etwa 30 Minuten behoben, indem er die Java-Datei zerlegt hat. Aber das Ticket hat immer noch keine Unterstützung der ersten Stufe. Von Zeit zu Zeit versuchen sie entweder, es heimlich zu schließen oder es an uns zurückzusenden, um die neueste Version anzuprobieren (obwohl wir ihnen ein Reproduktionsrezept geschickt haben, das sie selbst ausprobieren konnten).
Berühren Sie nicht mit einer Kahnstange.
quelle
Performance.
ClearCase ist leistungsstark, stabil (wenn es ordnungsgemäß gewartet und überwacht wird), aber es ist langsam. Manchmal geologisch.
Dynamische Ansichtsansichten führen zu schrecklichen Erstellungszeiten. Die Aktualisierung von Snapshot-Ansichten kann einige Zeit dauern (Mittagspause bei großen Projekten) oder das Auschecken (für den Tag nach Hause gehen).
quelle
Clearcase ist so nervig, dass es die Leute dazu bringt, Gedichte darüber zu schreiben:
http://digital-compulsion.blogspot.com/2007/01/poetic-pathetic-version-control.html
http://grahamis.com/blog/2007/01/24/if-it-was-free-no-one-would-download-it/
quelle
Die Entwickler werden die Hälfte ihrer Zeit damit verbringen, Clearcase herauszufinden, bevor sie Arbeiten ausführen. Sobald sie es herausgefunden haben, werden sie git lokal installieren und nur bei Bedarf auf das Clearcase-Repo zugreifen.
Sie müssen einen dedizierten Clearcase-Administrator einstellen.
quelle
Ich würde SVN für Toolset und Git für Skalierung / Workflow vorschlagen. Ich würde auch vorschlagen, CC nach Möglichkeit zu vermeiden. (Ohne Geld zu zählen, ist die Tatsache, dass die Verwendung eines Vollzeitadministrators so schmerzhaft ist, ein totaler Witz.)
quelle
Ich musste mich kürzlich mit einer ähnlichen Situation auseinandersetzen. Vielleicht kannst du aus meiner Geschichte lernen.
Das Team, dem ich neu zugewiesen wurde, verwendete ein schweres Werkzeug auf verschlungene, fehleranfällige Weise. Ich habe zuerst versucht, sie mit meinen Werkzeugen und Prozessen meiner Wahl zu verkaufen. Dieser Versuch schlug kläglich fehl. Ich war verblüfft, dass sie eine so belastende Umgebung einer vorziehen würden, die sowohl einfacher als auch effektiver war. Es stellte sich heraus, dass sie diszipliniert werden wollten, und ein schmerzhafter Prozess fühlte sich für sie diszipliniert an. Es klingt komisch, aber es ist wahr. Sie hatten auch viele andere Missverständnisse. Nachdem ich herausgefunden hatte, wonach sie suchten, blieben wir tatsächlich bei derselben Tool-Suite (Serena), änderten jedoch massiv die Konfiguration.
Mein Rat an Sie ist, herauszufinden, worauf es Ihrem Team ankommt. Das Rippen auf ClearCase bringt Sie nur weiter, wenn Sie mit ihren Interessen sprechen. Finden Sie auch heraus, warum sie keine Alternativen verwenden möchten. Sammeln Sie im Grunde genommen ein wenig die Anforderungen und passen Sie Ihre Werkzeugauswahl an Ihre Bedürfnisse an. Abhängig von Ihren Optionen, wer weiß, ist Clear Case möglicherweise die beste Option.
quelle
Ich bin nicht ganz gegen ClearCase (es hat seine Vorteile), aber um die Nachteile aufzulisten:
quelle
Der größte Nachteil für mich ist sowohl die Leistung (insbesondere wenn Ihr VOB an mehreren Standorten oder außerhalb des Standorts ausgeführt wird) als auch potenziell lange Ausfallzeiten.
Wenn Sie wie ich sind und in einem relativ kleinen Büro als Teil eines großen Unternehmens (ohne IT vor Ort) arbeiten, kann der Ausfall von Clearcase-Servern Sie den größten Teil eines Arbeitstages kosten, wenn Sie nicht produktiv sind und die richtigen Mitarbeiter finden um es zu reparieren.
Fazit: Verwenden Sie es nur, wenn Sie es wirklich für das benötigen, was Sie tun, und stellen Sie sicher, dass Sie über ein umfangreiches IT-Budget verfügen, um es zu verwalten.
quelle
ClearCase ist perfekt verwendbar, wenn Sie bereit sind, zusätzlich ein anderes Versionskontrollsystem zu verwenden! Ich persönlich finde es ziemlich gut, Quecksilber auf CC zu verwenden.
quelle
Ab der neuen Version von Version 7.1 bietet CC das atomare Einchecken als Funktionalität, wenn Sie dies möchten. Persönlich würde ich es wirklich nicht wollen, aber anscheinend sehen einige Leute das als "ein wesentliches Merkmal". Ich würde NIEMALS eine große Masse auf einmal als eine Art massive Version wollen. Andererseits ... wenn Sie es wollen, schalten Sie es einfach ein.
also ... kein Streit mehr.
quelle
Wir haben UCM ClearCase, das in ClearQuest (DR Tracking / Change Request System) integriert ist, in den letzten 4 Jahren mit mehr als 50 Entwicklern verwendet. Wir haben über 50 UCM-Projekte mit über tausend Streams, die über 35.000 DRs und Änderungsanforderungen verarbeitet haben. In diesem Zeitraum haben wir offiziell über 600 Integrationslieferungen durchgeführt und gleichzeitig bis zu 6 Entwicklungs- und Release-Bemühungen gleichzeitig durchgeführt.
Ich bin der Haupt-CM / ClearCase-Typ mit einem Backup, der in der Lage ist, die regulären Bereitstellungs- / Zusammenführungs- und Integrations-Builds durchzuführen. Das Netzwerk und die Server werden vom IT-Team unterstützt. Ich kann nur sagen, dass wir von der CM-Seite dieser enormen Entwicklungsanstrengungen praktisch keine Probleme hatten und nie ein Show-Stopper waren. Unsere Entwickler wurden nur mit den grundlegenden Dingen geschult und erhielten einfache Schritte, wenn auf Anfrage des Projektmanagements ein neues Projekt (Zweig) erstellt wurde.
Zu viele Entwickler haben sich über ClearCase beschwert, weil ihnen die richtige Unterstützung für CM / IT / ClearCase / Prozess / Management fehlt. Entwickler sollten sich auf die Entwicklung konzentrieren, nicht auf SCM, oder ein Werkzeugspezialist sein. Für eine große Softwareentwicklung sollten mindestens 5-7% des Budgets für CM- und Tool-Support ausgegeben werden.
quelle
Ausführen eines JDK von einem VOB unter Linux.
Probieren Sie es aus, Sie müssen mit der Variablen LD_PRELOAD spielen (ich weiß!)
quelle
der Punkt "es braucht eine engagierte Person" und "es ist kompliziert" etc ....
Das Hauptproblem bei der Suche nach diesem Problem besteht darin, dass Sie definieren müssen, ob die Konfigurationsverwaltung in Ihrer Organisation durchgeführt werden soll (dies ist NICHT die Versionsverwaltung). Konfigurationsmanagement ist wie Projektmanagement: Auch ohne ein Tool können Sie das Projektmanagement durchführen und ohne ein Tool können Sie das Konfigurationsmanagement durchführen. Viele Leute haben Schwierigkeiten, dies zu verstehen, und viele Leute denken, dass Configuration Management einem Tool gleichkommt, das Softwarequellen oder ähnliches versioniert (daher Vergleiche mit Subversionen oder anderen VERSION-Managementsystemen).
ClearCase ist eine Lösung, die für die Verwendung in einer Konfigurationsmanagementumgebung ERGO entwickelt wurde: Es gibt einen Konfigurationsmanager (genau wie "Es gibt einen Projektmanager").
Also ... wenn Ihrer Meinung nach diese engagierte Person da ist, um ein Werkzeug zu verwalten, denke ich, dass etwas sehr falsch ist. Meiner Meinung nach gibt es eine engagierte Person, die das Konfigurationsmanagement durchführt und aus Sicht des Endbenutzers nur dann auftaucht, wenn ein Problem mit dem Tool vorliegt, dies jedoch nur als 1% seiner Arbeit betrachtet.
Was Sie also tun müssen (wie in jedem anderen Softwareprojekt), kehren Sie zu Ihren Anforderungen zurück und stellen Sie eine Liste der Anforderungen zusammen, die sich auf die Anforderungen Ihres Unternehmens an das Konfigurationsmanagement beziehen. UND JA, wie in jedem anderen Softwareprojekt haben Sie Benutzer (wie z. B. Entwickler), die mit anderen Benutzern (wie z. B. Management) in bestimmten Anforderungen überhaupt nicht einverstanden sind. In einigen Reaktionen, die ich hier lese, liegt der Schlüssel imho.
Und meiner Meinung nach, wenn Sie die Organisationsliste der Anforderungen UND einen Konfigurationsmanager im Mix haben ... ist die Auswahl ziemlich klar (siehe auch das Forum auf www.cmcrossroads.com).
ClearCase ist nicht nur ein Tool für Endbenutzer, die ihre Quellen unter Versionskontrolle wie Subversion oder Git eingeben. Dies ist nur 1% der Gründe, warum ein Konfigurationsmanager wirklich ein ausgereiftes Konfigurationsmanagement-Tool wünscht.
Und ... Ich denke, die Wahl eines CM-Systems sollte niemals bei Entwicklern liegen, die der Wahl des richtigen Projektmanagement-Tools oder des richtigen CRM-Systems gleichkommen. Entwickler sind Endbenutzer eines bestimmten Teils der Funktionalität des Tools.
quelle
Ich werde hier vielleicht alleine sein, aber ClearCase ist nicht so schlimm, wie alle sagen. Es kann riesig umgehen Repositories verwalten. Die dynamische Ansicht ist auch eine ziemlich coole und leistungsstarke Funktion. Es ist zuverlässig und kann durch Hinzufügen von Triggern und Einschränkungen auf Basis von Pef-Dateien, Berechtigungen usw. angepasst werden.
Leider hat es einen hohen Preis. Es ist kostspielig und für einen ordnungsgemäßen Betrieb muss es von einem dedizierten IT-Team ordnungsgemäß konfiguriert und gewartet werden. Es macht es wirklich gut für BigCo, aber keine so kluge Wahl für SmallFirm.
Ich bin ein großer Fan von DVCS und Git, kann aber verstehen, warum BigCo ClearCase anstelle von SVN und Git wählen sollte. Was ich nicht verstehen kann, warum sollte jemand SVN anstelle von Git wählen;>
quelle
Dynamische Ansichten. Muss ein voll funktionsfähiges durchscheinendes Dateisystem bewundern.
Ein großer Vorteil ist, dass sich das geistige Eigentum immer im Unternehmensnetzwerk befindet. Ein Laptop kann verloren gehen / gestohlen werden und kein Quellcode ist gefährdet.
Ein weiterer Grund ist der sofortige Zugriff auf Quellcode und geänderte Dateien. Es wird nie Zeit darauf verwendet, etwas herunterzuladen.
Es dient gut für den Zweck, den es hat.
quelle