Irgendwelche Anleitungen zur Verwendung von WP SVN mit IDE-Clients? [geschlossen]


8

In der Dokumentation zum Umgang mit dem offiziellen WP-Repository geht es ausschließlich um die Verwendung der Befehlszeile. Obwohl ich keine Vorurteile dagegen habe, habe ich wenig Erfahrung mit VCS und zwei (oder drei) verschiedenen, die ich in naher Zukunft herausfinden und verwenden muss.

Im Moment fliege ich mit VCS-Integrationsfunktionen in IDEs (NetBeans, PHPStorm). Was mich oft verwirrt über Einzelheiten und Methoden, um Dinge richtig zu machen.

Gibt es gute Artikel / Beiträge / Anleitungen zur Verwendung des offiziellen SVN-Repositorys (oder zumindest SVN im Allgemeinen) mit IDEs oder anderen GUI-basierten Tools? Etwas, das sich auf Konzepte und Workflows konzentriert, anstatt arkane Linien in der Konsole einzugeben.


Ist dies codex.wordpress.org/… die Art von Informationen, nach denen Sie suchen? Wenn nicht, können Sie mehr erklären, woran Sie interessiert sind?
Manzabar

@Manzabar Ich kenne Grundlagen. Was ich zum Beispiel nicht weiß, ist, wie man denselben Code für Trunk, Tag und nicht verwandtes Repository festschreibt, ohne die Dinge durcheinander zu bringen.
Rarst

Ah, hört sich so an, als müssten Sie sich über svn: externals informieren. Ich sage "klingt wie", da ich noch nie Glück hatte, svn: externals richtig einzurichten oder herauszufinden.
Manzabar

Diese Frage scheint nicht zum Thema zu gehören, da sie nach einer Buch- / Leitfadenempfehlung fragt.
Rarst

Antworten:


7

Ich werde diese Antwort zu einem Blog-Artikel machen, da sie leicht vom Thema GRIN abweicht. Auf http://wp.leau.co/2011/02/25/how-to-setup-your-wordpress-php-development-environment/ in Kapitel 6 habe ich einige Erklärungen für SVN in Eclipse gegeben, aber Sie suchen wahrscheinlich nach etwas anderes.

Die Geschichte, die ich hier gemacht habe, handelte von Ihrem Kommentar

"Im Moment bin ich mit VCS-Integrationsfunktionen in IDEs (NetBeans, PHPStorm) ausgestattet. Das verwirrt mich oft über Einzelheiten und Methoden, um Dinge richtig zu machen." und "Etwas, das sich auf Konzepte und Arbeitsabläufe konzentriert, anstatt arkane Linien in der Konsole einzugeben."

Ich habe gehört, dass ich SVN öfter in einem breiteren Kontext erklären wollte, z. B. zuerst "Programmiersprachen" beschreiben und dann PHP erklären, damit Sie PHP besser verstehen und in diesem Fall zuerst Configuration Management und dann die SVN-Lösung darin.

Ich werde hier einfach etwas eingeben und wenn es nicht zum Thema gehört oder nicht benötigt wird, werde ich es löschen:

------------ 8 <----------------

Wenn Sie Eclipse PDP installieren, habe ich Folgendes geschrieben: [ http://wp.leau.co/2011/02/25/how-to-setup-your-wordpress-php-development-environment/ ]

Wenn Sie nach unten zu # 6 scrollen, erkläre ich kurz, wie Collabnet Subclipse in Eclipse installiert wird (im Grunde nur auf den Server zeigen, alle auswählen und installieren)

In Eclipse mit jedem Versionsverwaltungstool befinden sich die Befehle für die Versionsverwaltung immer unter der rechten Maustaste auf "TEAM". Da Sie zwischen Projekten wechseln können, können Sie mehrere Versionsverwaltungstools unterstützen, und die meisten Befehle sind über Tools über die GUI bekannt.

Plugins

Wie SIE wissen: Für ein neues WordPress-Plugin-Projekt erhalten Sie einen svn-Speicherort von WordPress.org (in Ihrem Postfach). Sie verwenden den Trunk für Ihren neuesten Code und "Tags" -Kopien für stabile Releases. (Sehr einfaches CM-Muster). Das sehen Sie auf den ersten Blick.

Ihr Projekt wird also mit TRUNK verknüpft. und Sie können sich einfach dazu verpflichten. Dies ist der Ort, an dem Sie arbeiten (aber nicht der Ort, von dem aus Sie freigeben) (es sei denn, Sie geben in der Datei readme.txt 'trunk' als Speicherort für Ihren endgültigen Code an).

Darüber hinaus können Sie WordPress / wp-includes und / wp-admin als Bibliotheken in Ihr Eclipse-Projekt aufnehmen, um Funktionen nachzuschlagen und veraltete Funktionen anzuzeigen. Diese sind nicht beschreibbar und fallen daher nicht unter die Versionsverwaltung (!). Dies ist von der Client-Seite, also nicht die "externen", die tatsächlich im Versionsverwaltungsprojekt verknüpft sind.

Sobald Sie eine stabile Version haben, wählen Sie das Material aus und klicken Sie mit der rechten Maustaste auf "Team" und "Tag / Zweig erstellen". Dadurch wird der WordPress-SVN-Speicherort geöffnet. Sie können das Tag-Verzeichnis auswählen und eine neue Nummer eingeben. Ihre neue Version ist live (was vielleicht für jemanden von Nutzen ist, der dies liest). Beachten Sie, dass Sie nicht das Stammverzeichnis Ihres Projekts auswählen sollten, sondern alles andere, da sonst das Stammverzeichnis auch unter Ihren Tags / 2.3.4 erstellt wird. Dies ist nicht das, was Sie möchten, dass sich alles unter dem Stammverzeichnis in Ihrem / tag-Verzeichnis befindet.

In der Veröffentlichung finden Sie einige Screenshots.


http://wp.leau.co/files/2011/02/image_thumb17.png

WordPress selbst Mitwirkender

Wenn Sie ein Mitwirkender sind, können Sie dasselbe wie oben verwenden, aber Sie erstellen "Patches" aus den von Ihnen vorgenommenen Änderungen. "Patches" ist ein Konzept in der CM-Welt, zB Subversion bietet dies oder Jazz RTC. Mit der rechten Maustaste auf "Patch anwenden" können Sie einen Patch anwenden, wenn Sie einen Patch haben, der noch nicht auf den WordPress-Trunk angewendet wurde.

Einige Leute verpflichten sich auch direkt zum Kofferraum.

WordPress selbst "Lesen"

Erstellen Sie einfach ein Projekt 'WordPress', das eine Überprüfung der / LATEST-Version im Trunk (des Subversion-Codes) enthält, und zwar erneut über team> checkout.

Persönlich mache ich das nicht, sondern verwende nur einen Export des neuesten Codes (mit Gewalt), um nur ein Verzeichnis mit der neuesten WordPress-Version zu erhalten (das also nicht unter die Versionsverwaltung fällt).

Allgemein

Da Sie einige Erfahrungen mit VCS und mit Fragen rund um SVN haben: Grundsätzlich geht es bei allen Versionswerkzeugen um das Konzept der Benennung von Dingen. Oder besser gesagt, mit dem besten Namespace. Sie können die meisten Befehle von CVS, Git, RTC, ClearCase, SourceSafe usw. dem Konzept um diesen Namespace zuordnen. Da Sie einige / wenig Erfahrung mit anderen Tools haben, etwas breiter:

Neue Leute starren sich oft blind auf bestimmte Befehle oder eine bestimmte Funktionalität, aber die beste Option, um alle benötigten Elemente in einem Namespace zu platzieren, ist das Kernstück.

Da dies im Grunde die Kernfunktionalität dieser Tools ist, ist der Begriff "Versionsverwaltung" falsch. Es ist eigentlich ein Name-Space-Manager.

Also wenn du hast

/ Projekt A / Abteilung B / Team C / Mitglied D / Stream E / Komponente F / Element G / Zweig H / Zweig I / Version J.

Sie können für jedes "Ding" einen eindeutigen Namen erstellen. Das Obige ist eine Implementierung eines Namespace, den Sie für einen bestimmten Zweck mit einem der Namespace-Tools benötigen.

Fast alle Konzepte auf dieser Welt können darauf abgebildet werden. Die Art und Weise, wie Sie Ihren benutzerdefinierten Namespace / Ihre benutzerdefinierte Taxonomie unterstützen können, hängt von den Funktionen Ihres Tools ab. Also ... es hängt wirklich von den Konzepten und Entscheidungen ab, die die Designer der Hunderte verschiedener Werkzeuge getroffen haben.

In einem guten Tool können Sie auf diese vollständige Taxonomie klicken und sie in einem Baum anzeigen oder in einem dieser Bäume zoomen.

Das ist der Kern: Ein Tool, mit dem Sie die Komplexität verwalten können (siehe Komplexität in Wikipedia: http://en.wikipedia.org/wiki/Complexity ), indem es Ihnen gute Tools zur Verwaltung Ihrer benutzerdefinierten Taxonomie bietet. Die Person, die die Taxonomie erstellt und überlegt, wie sie eingerichtet werden soll, ist der Konfigurationsmanager, der einen Plan namens Konfigurationsmanagementplan schreibt, der dies zuerst ausdenkt.

Stellen Sie sich vor, jemand bittet Sie, eine Reihe von benutzerdefinierten Taxonomien in WordPress zu erstellen, die ALLE Objekte in seinem Unternehmen darstellen, einschließlich der Möglichkeit, den Status so zu ermitteln, wie er zu einem bestimmten Zeitpunkt war. Sie können viele Designentscheidungen treffen und jeder wird basierend auf einigen Entscheidungen etwas anderes produzieren. Einige enthalten mehr Funktionen, andere sind einfacher und die komplexeren haben unterschiedliche Entscheidungen getroffen. Dies ist "diese Werkzeuge". Daher verstehe ich Diskussionen auf Tool-Ebene über Versionsverwaltung nie, weil das völlig seltsam ist.

In PHP können Sie heutzutage Namespaces erstellen, eine Hierarchie mit Verzeichnissen erstellen, Namenskonventionen auf Objekte und darin Methoden anwenden. Wenn Sie eine Datei nehmen, die Sie in eine Hierarchie eingefügt haben, gehen Sie noch einen Schritt weiter. Sie fügen eine / dahinter hinzu und platzieren eine Versionsnummer dahinter. Das ist sogar nicht genug, weil Sie möchten, dass Team A an Version 4 der Datei und Team B an dieser Version arbeitet. Sie fügen also ein weiteres / hinzu und fügen die Zweigstellen-ID hinzu. So erstellen Sie den Namespace. Je nach Werkzeug können Sie so verrückt werden, wie Sie möchten.

Aber es bedeutet: Wenn jemand zu Ihnen kommt und fragt "Wo ist Dokument Z?", Können Sie die Antwort nicht geben. Denn in einem Versionsverwaltungssystem existiert "Dokument Z" nicht. Und selbst wenn er sagt, gib mir "Dokument Z Version 5", kannst du es nicht übergeben, da er "Dokument Z Version 5" des Zweigs Team 1 oder "Dokument Z Version 5" des Zweigs Team 2 bedeuten könnte. Es geht nur um das Benennen. "document Z version 5" ist einfach ein nicht korrekter Namensansatz im definierten Namespace.

In Subversion können Sie dies nur eingeschränkt tun, damit es einfach zu verstehen ist. Einige Konzepte stimmten damit überein:

"Ausführung"

Eine Version ist eine Überarbeitung eines bestimmten Elements. Also zB wp-config.php Version 5. In einem Tool wie ClearCase können Sie auch einzelne Versionen von Elementen anzeigen und einzelne Dateien "festschreiben" (aber auch atomare Festschreibungen durchführen oder Sätze ändern oder was auch immer).

In Subversion ist die Handhabung von Versionen eingeschränkter:

  • eine Reihe von Änderungen in einem lokal Sie machen gehen Sie „ begehen “ , was bedeutet , dass das komplette Set von „Änderungen“ atomar begangen werden und die ganze Basis bekommt eine neue Versionsnummer. Dies ist die Versionsnummer, die Sie auf der WordPress-Subversion-Site sehen.
  • Sie können also lokal nicht mehr Änderungen an einer Datei vornehmen und sie alle als einzelne neue Versionen wie in Clearcase behandeln lassen. Alle Änderungen, die Sie lokal an dieser oder einer anderen Datei vornehmen, werden auf einmal übermittelt und erhalten den "eindeutigen neuen Namen".
  • Wenn Sie keinen Zugriff auf das Repository (Rechte) haben, können Sie eine Reihe von Änderungen vornehmen und diese in einem "Patch" speichern. Sie können diesen Patch dann an eine Person wie einen Integrationsmanager oder sogar einen Build-Manager senden, der ihn auf das Repository anwendet. Tools wie zB RTC unterstützen auch "Patches". Also erstellt eine Person einen Patch und eine andere wendet den Patch an. Sie sollten dies wirklich berücksichtigen, da das Wort "ein Patch" bedeutet, also nicht der Standardanwendungsfall für die Entwicklung von Code.
  • Anstelle von / branch N / hello.doc / version 25 gibt es auch Labels wie / branch N / hello.doc / LATEST oder / HEAD. In einigen Versionsverwaltungssystemen können Sie komplexe Beschriftungen anwenden und dann Skripte schreiben, die an diesen Beschriftungen arbeiten.

Arbeiten an einer Version

In Subversion besteht der Standardanwendungsfall darin, dass Sie einfach alle Inhalte von einer Repository- Kasse auf Ihre Festplatte herunterladen , an den Daten arbeiten und dann alle Änderungen, die andere Personen vorgenommen haben, bestätigen und sich diesen stellen, um Konflikte zu lösen. Diese Konzepte sehen Sie in der GUI. Wenn Sie jemand anderes auch Ihr zB hello.doc verhindern wollen Bearbeitung dann Sie LOCK es bedeutet: niemand sonst sollte in der Lage , es zu ändern.

Ich mag diese Idee WIRKLICH nicht :( IMHO, das ist eine sehr schlechte Praxis. Zum Vergleich und Verständnis: In ClearCase ist ein Checkout mehr oder weniger mit einer Sperre vergleichbar und ein Checkin ist ein Commit (in Subversion ist Checkin ein Alias ​​für Commit). Dies ist der Standardanwendungsfall in ClearCase, in dem auch Hijacks unterstützt werden , die mit einer Subversion- Prüfung identisch sind, jedoch für ausgewählte Dateien. IMHO ist dies viel sauberer. Selbst wenn Sie die Prüfung in ClearCase durchführen, stehen Ihnen drei Optionen zur Verfügung: andere Leute arbeiten möglicherweise nicht daran (z. B. mit Word-Dokumenten), andere Leute arbeiten möglicherweise daran, wenn es wirklich benötigt wird, und "jeder kann daran arbeiten" (z. B. mit Quellcodedateien) Also ... das bedeutet Auschecken, Sperren und Festschreiben in SVN.

Komponenten und Baselining

In Tools wie RTC und ClearCase können Sie Elemente in Komponenten gruppieren. Leistungsstark, da diese Komponenten Teil des Namensraums sind und durch Baselining eigene Versionen erhalten. So erhält zB die Komponente "WordPress" die Basisversion 4.53. Diese Baselines sind dann Objekte an sich, die dann auch Metadaten wie "in test" abrufen können. SVN hat jedoch KEINE davon. Damit... :

Stichworte

In SVN (und so weiter auf der WordPress-Site) sehen Sie Verzeichnisse mit Nummern in einem Gesamtverzeichnis namens "Tags". Eine Problemumgehungsidee. Sie greifen einfach zu einem bestimmten Repository und speichern es (dateibasiert) in einem Verzeichnis tags / 3.2.4. Das ist es. Es hat keine Beziehung im Versionsverwaltungs-Namespace usw. ... nur ein einfaches Verzeichnis ... SIGH ... IMHO ist es unmöglich, ein Konfigurationsmanagement mit dieser Art von Tool durchzuführen. Es ist also kein Metadatenobjekt, in dem Sie Skripte erstellen und Eigenschaften zuweisen und die wildesten Dinge tun können. Nein. Es ist nur ein Verzeichnis. In RTC können Sie zum Vergleich ein ' Schnappschuss einer bestimmten Basislinie, um auch diesen Anwendungsfall zu unterstützen. In ClearCase UCM würden Sie einen neuen Zweig / Stream einer bestimmten Basislinie erstellen und diese dann anzeigen.

Geäst

Soweit ich weiß, wird dies in der WordPress-Umgebung nicht verwendet, aber vielleicht irre ich mich, und es gibt Teams, die dies für die Versionen von WordPress tun, um Portänderungen an älteren Versionen zu unterstützen. Also weiß ich nicht, vielleicht weiß es jemand anderes.

Dies wird für den Namespace-Baum verwendet. Wenn 2 Teams am selben Code arbeiten, können Sie "auf Englisch" \ team 1 \ hello.doc und \ team 2 \ hello.doc sagen. Beide Teams gehen dann an die Arbeit und nach einer Weile haben Sie \ team 1 \ hello.doc \ version 51 und \ team 2 \ hello.doc \ version 23. (also hat Team 1 51 Versionen und Team 2 23 Versionen erstellt). Jetzt haben Sie die Möglichkeit, von Filialteam 1 zu Filialteam 2 zusammenzuführen, und Sie erhalten Zusammenführungen in Team 2, aber am Ende hat Team 2 alle Änderungen von Team 1 (Version 24) und die einzelnen Filialen zeigen weiterhin die Arbeit für jede von ihnen.

In RTC und ClearCase wird dies nicht verwendet, sondern ein erweitertes Objekt namens "Streams" (zum Vergleich). Aus einer niedrigen Perspektive können Sie diese gleich betrachten, ABER ....... wenn Sie im wirklichen Leben sind, werden Ihre Zweige eine Menge Zeug enthalten. In der realen Welt müssten Sie also Notizen, Versionshinweise, Dokumentation usw. machen. Um dies zu verbessern, enthält ein Stream nicht nur den "Code", sondern auch die "Änderungen", sodass Sie wissen, dass es sich bei RFC23 um Version 34,32 handelt und 56 und Sie können sie separat freigeben.

IMHO, wenn Sie die Dinge richtig einrichten möchten, geben Sie JEDER Person einen oder mehrere persönliche Streams / Zweige. So können sie von dort aus einchecken / festschreiben und auschecken und es stört niemanden. Nur wenn jemand bereit ist, "liefert" er seine Sachen an den Team-Stream und der Team-Stream an den Integrations-Stream usw. In WP sind die Releases möglicherweise Zweige, aber für normale Personen: Sie arbeiten alle in demselben Zweig. Ein Nachteil, da sich "Testprojekte" dann in c: \ temp und nicht in der Versionsverwaltung befinden und Sie nicht eine Gruppe von Personen haben können, die vorübergehend an Feature X arbeiten, das nur in 5 Releases benötigt wird.

die ideale Welt und Kompromisse

Wenn Sie \ team1 \ hello.doc haben und jemand in \ team2 \ AUCH hello.doc kopiert, dass dies BAaaaaad ist. Seitdem haben wir 2 Elemente mit unterschiedlichen IDs, bei denen der Benutzer glaubt, dass sie gleich sind, das System sie jedoch als nicht gleich behandelt. Dies nennt man "böse Zwillinge" und Sie sollten dies niemals in einer solchen Umgebung tun. Verschmelzen oder Basis von Zweigen immer. Wenn Sie böse Zwillinge verstehen, verstehen Sie Zweige (warum dies schlecht ist: weil sie bei einer Zusammenführung als zwei verschiedene Entitäten behandelt werden, während Sie möchten, dass sie als gleich behandelt werden) (oder unterschiedliche Verhaltensweisen in verschiedenen Systemen). Wenn ein neuer Benutzer etwas vermasselt, ist dies meistens der Fall. 'Ich habe gerade hello.doc gelöscht und es zurück in' argh kopiert

ÄNDERUNGEN

SVN bietet keine Unterstützung für dieses ABER, es gibt jedoch Tools, die Sie integrieren können, um eine Art integriertes Änderungsmanagement / ALM zu unterstützen. In Tools wie ClearCase-UCM-Variante oder RTC können Sie keinen Buchstaben ändern, ohne dass ein Defekt, RFC, Ticket usw. vorliegt. In SVN, wenn Sie ein Commit durchführenSie können eine Beschreibung für Ihr atomares Commit eingeben. Das heißt: Sie sollten versuchen, Änderungen an "patchbaren" Teilen vorzunehmen, mit anderen Worten: Führen Sie ein atomares Commit pro Defekt / Änderung durch, um ein gewisses Verhalten zu erzielen. (aber natürlich ist es nirgends danach alles in einem Namensbaum wie in der ClearCase-Datenbank miteinander verknüpft) (damit Sie Versionshinweise automatisieren oder dem armen Kerl als Deployment Manager helfen können, Tonnen neuer Codesätze, Änderungen, Releases und Versuche zu erhalten es mit keinem wirklichen Werkzeug zu vermischen, um ihm einen Einblick zu geben, was es tatsächlich ist).

Da SVN das Änderungsmanagement nicht unterstützt, wurde WordPress so eingerichtet, dass es TRAC verwendet: http://core.trac.wordpress.org/, wie Sie wissen, weil Sie dort leben :)

Ich glaube, TRAC ist da, weil ein echtes Tool wie ClearCase oder RTC, in das Änderungen als Objekte integriert sind (ja das, gegen das Sie programmieren), fehlt. Sie haben also ein Tool, mit dem Sie eine Art Änderungssatz diskutieren und einreichen können (während dieses Konzept ebenfalls fehlt). Das sind also die "Patches", nur eine Reihe von Dateien ohne die Metadaten, die Sie in einem guten System erwarten würden (also bin ich jetzt im Grumpy-Zustand). Die Anzahl der TRAC ist wichtig, da dies die Gesamt-ID im Namensbaum ist, die mit einigen Änderungen verknüpft ist.

Änderungen liefern

Dies ist etwas, das Sie in einem separaten Blog-Artikel schreiben sollten. Kurz gesagt: In der idealen Welt möchten Sie Ihre Änderungen auswählen, die Sie "liefern" möchten (oder ein anderes Konzept), und sich dann keine Gedanken über Dateien, Verzeichnisse (Versionen von) machen. Sie liefern nur "RFC 3 und 5". So funktioniert ClearCase UCM oder RTC. In SVN / base clearcase "schreiben" Sie eine Reihe von Dateien fest, in denen wir hoffen, dass Sie die richtige Entscheidung getroffen haben. Das ist ein großer und wichtiger Unterschied. (Aus diesem Grund wird SVN meistens zusammen mit zB jira / clearquest / etc ... verwendet, um dieses Verhalten zu erreichen.) Patching .... liefert nicht, es ist mehr von einem Stream zu einem anderen als ein ähm 'Patch'.

Externe

In anderen Tools ist dies in SVN einfacher: Wenn Sie Code aus einem Teil haben, der nicht Ihr eigener ist, können Sie ihn als verwaltete externe Version behandeln und ... um zum Kernkonzept zurückzukehren: Sie meinen das Teil fällt nicht unter Ihre Namensraumverantwortung, da es nur um die Benennung geht. ABER obwohl es extern ist, fällt es in Ihre Verantwortung.

In der GUI gibt es keinen Workflow in der regulären "rechten Maus", sondern er ist in der Projektstruktur definiert. Es ist also Teil Ihrer Definition.

Wenn dieses Konzept verwendet wird, wird es im IEEE-CMP wie erforderlich definiert (siehe unter).

Integration und Zusammenführung

Wie gesagt. Das Paradigma hinter SVN ist, Dinge vor Ort zu besorgen, Ihre Arbeit zu erledigen und sich dann zu verpflichten und dann das S *** zu haben. In der GUI erhalten Sie jedoch genau das gleiche Werkzeug wie die meisten anderen. Hier sollten Sie das Drei-Wege-Zusammenführen, das Zwei-Wege-Zusammenführen und den Unterschied zwischen Konflikten, die automatisch gelöst werden können, und Konflikten, die nicht automatisch gelöst werden können, wirklich verstehen. Dieser letzte fällt dann in zwei Klassen: diejenigen, in denen das Tool Ihnen das gute Endergebnis vorschlagen kann, und diejenigen, in denen es nicht weiß, was das Ende sein würde. Sie haben nach der GUI gefragt, aber in der Befehlszeile erhalten Sie Informationsdateien darüber, was Sie vor dem Festschreiben reparieren / zusammenführen sollten.

Viel mehr für einen Blog-Artikel. (zB Open Source Development versus Enterprise Development und Build Meisters und Integrationsmanager, da Sie hier wirklich unterschiedliche Entscheidungen treffen müssen).

Zu guter Letzt das CMP

Was Sie verlangen, ist ein Konfigurationsmanagementplan für WordPress. Dies ist ein IEEE-Dokument. Das heißt: Unabhängig von den Millionen von Konfigurationsverwaltungsplänen, die Sie bei Google finden, gelten alle für die IEEE-Spezifikation (mehrere Versionen) des CMP.

Genau wie bei (z. B. HTTP) RFCs gibt es das IEEE CMP.

Dieser Plan enthält definierte Abschnitte wie "Wie werden externe Elemente behandelt?" Und "Wie sieht der Namespace aus, wie rufen wir Elemente ab und wie reproduzieren wir Elemente?", Rollen, Verantwortlichkeiten usw.

Aus diesem CMP können Sie dann Arbeitsanweisungen erstellen. Jeder, der die Regeln kennen möchte, kann das CMP lesen.

In einem Open Source-Kontext fehlt häufig die Rolle "Konfigurationsmanager". Sie vermissen also auch den Konfigurationsmanagementplan.

Anders als bei einem öffentlichen RFC (z. B. URI oder HTTP) müssen Sie für das IEEE-Standarddokument bezahlen, aber ... wenn Sie Google verwenden, finden Sie es hier und da.

Lieferstraße

In einer Lieferstraße würde ein Team über neue Geschäftsideen nachdenken. Sie haben eine Wartungsabteilung, die eine Unmenge von Produktionsfehlern in ihrem System hat. Sie würden mehrere Teams haben, die an demselben Code arbeiten. und in jeder Teilstraße hätten Sie ein Anforderungsteam, das Anforderungen definiert. Ein Architekturteam, das in ein Funktionsteam und ein Betriebsteam aufgeteilt ist (Anwendungsfälle gehen an das Funktionsteam und Nichtfunktionale an das Betriebsteam). In einer Unit-Test-Umgebung, in Akzeptanzumgebungen, in Lade- und Testumgebungen, in Funktionstestumgebungen, in Testumgebungen vor der Produktion und in Produktionsumgebungen wurden häufig unterschiedliche Releases parallel ausgeführt.

In allen sind Versionen, die alle aufeinander zurückgeführt werden.

Eine Version in einer bestimmten Testumgebung ist mit einer Reihe von Versionen verknüpft, die mit einem bestimmten RFC verknüpft sind, und diese Version ist mit einer bestimmten Version einer Anforderung verknüpft. Die Anforderung wird dann mit einer bestimmten Version eines Testsatzes verknüpft. ALLE fallen unter die Versionsverwaltung.

In WP mit SVN / TRAC habe ich die Anforderungsdatenbank und die Versionsdatenbank der Anforderungen noch nicht gefunden. (damit Sie Auswirkungsanalysen durchführen und sehen können, welcher Code sich ändert, wenn Sie eine Anforderung ändern) (und dass Sie in einer neuen Version ausdrucken können, welche Anforderungen sich geändert haben). Ich habe einzelne Elemente in TRAC gesehen, in denen in den Kommentaren Links zu anderen einzelnen Elementen in TRAC hergestellt wurden. Ich habe auch keine Rückverfolgbarkeit zwischen TRAC-Elementen und dem Code außer in Kommentaren gesehen. Das bedeutet, dass die Leute viel in ihren Köpfen tun und es sehr abhängig von einer aktiven Community oder Kernentwicklern ist, da sie viel davon in ihrem Gehirn haben.

Aber das geht weit weg vom Thema Grinsen

OSLC für ALM

Nur noch eine Anmerkung zu dieser Geschichte: Wäre es nicht schön, wenn es ein Standardpaket für all diese Application Lifecycle Management Tools (ALM) geben würde? Jemand hat darüber nachgedacht und es gibt jetzt Standards, so dass alle Konzepte auf eine höhere Abstraktionsebene gestellt und dann in den Tools implementiert werden. Google: OSLC für ALM. (damit alle Werkzeuge miteinander und für den Benutzer sprechen können: dass Sie sie alle verstehen, indem Sie die Abstraktionsschicht verstehen).

RUHE

Noch einen Schritt weiter, wenn Sie Zeit haben: Die Welt steuert jetzt auf C / ALM zu, eine Produktgeneration der nächsten Generation, bei der die Prozesse und Werkzeuge eine integrierte Sache sind, sodass Sie sich nicht mehr fragen müssen, was der Prozess ist. Das erste Produkt dieser Generation ist RTC. Wenn Sie also SVN gut verstehen oder ClearCase oder Jira oder Trac oder ANT oder Agile oder RUP oder iRUP oder einen anderen Prozess, Versionsmanagement, Änderungsmanagement, Build-Management-Sache verstehen, benötigen Sie all dies, um RTC zu verstehen, da all dies kombiniert wird in einer Sache, weil sie alle miteinander verbunden sind und dies an sich eine Schnittstelle über OSLC darstellt, so dass jedes dieser älteren Tools "eingesteckt" werden kann.

Aber jetzt bin ich wirklich nicht zum Thema.



Das ist eine ausführliche Antwort! :) Ich habe einige Dinge für mich geklärt (wie das Ablegen einer Kopie im Tag ohne Festschreiben), aber ClearCase-Referenzen und dergleichen machen es insgesamt noch verwirrender. :)
Rarst

Gut, dann werde ich es verlassen. Irgendwie finden die Leute CM immer verwirrend. Deshalb sind CM-Manager immer mürrisch (im Zusammenhang damit, warum Datenbankadministratoren immer wütend sind). GRINSEN. Hier ist auch ein gutes Forum, wenn Sie interessiert sind: cmcrossroads.com/forums
edelwater

2

Ich verwende TortoiseSVN derzeit nicht (allgemein empfohlen), aber es stellt sich heraus, dass es ein sehr umfangreiches Handbuch enthält, das online verfügbar ist und in mehreren Sprachen heruntergeladen werden kann .

In seinen eigenen Worten:

Dieses Buch richtet sich an Computer-Experten, die Subversion zum Verwalten ihrer Daten verwenden möchten, sich jedoch mit dem Befehlszeilen-Client nicht wohl fühlen. ( Vorwort )

Dieses Dokument beschreibt die tägliche Verwendung des TortoiseSVN-Clients. Es ist keine Einführung in Versionskontrollsysteme und keine Einführung in Subversion (SVN). Es ist eher ein Ort, an den Sie sich wenden können, wenn Sie ungefähr wissen, was Sie tun möchten, sich aber nicht genau daran erinnern, wie es geht. ( Kapitel 4. Leitfaden für den täglichen Gebrauch )

So ziemlich das, wonach ich gesucht habe und es jetzt gelesen habe.


1

Wenn Sie Windows verwenden, können Sie TortoiseSVN (http://tortoisesvn.tigris.org/) ausprobieren. Es lässt sich nicht in die IDE integrieren, aber in den Windows Explorer, sodass Sie mit der rechten Maustaste klicken können, um Ihren Code ein- und auszuchecken.


Ja, ich habe diesen heute installiert und damit gespielt. Ich interessiere mich jedoch nicht so sehr für Tools (die ich bereits habe) wie für deren Verwendung im Kontext des WP-Repository-Systems von Trunk / Tags / Zweigen und dergleichen sowie für das gleichzeitige Jonglieren mit anderen Repos.
Rarst

0

Die beste GUI, die ich je gesehen habe, ist http://blog.ftwr.co.uk/archives/2005/11/03/windows-wordpress-toolbox/

Hier gibt es ein großartiges visuelles Tutorial, das auf mercurial http://hginit.com/ basiert.

Vieles davon hängt davon ab, wie gut Ihre IDE über eine SVN- und Git-Integration verfügt, die die Arbeit erleichtert. Beispielsweise verfügt Eclipse über viele Tools, aber so etwas wie Ultraedit (das ich früher verwendet habe) verfügt über eine seltsame Benutzeroberfläche und ein seltsames Versionskontroll-GUI.

Das Thema leidet unter dem Langeweile-Syndrom, zumindest für mich ist es schwierig, die Details zu lernen. Ich fand, dass das Anschauen von YouTube-Videos zu diesem Thema der Lernkurve x100 wirklich geholfen hat.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.