![]() |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Übrigens: Gerade bei der Zusammenarbeit mit anderen Entwicklern empfinde ich dieses Vorgehen als deutlichen Vorteil. Fällt irgendwie doch auch unter den Begriff "Separation of Concerns", oder? |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Für das gibt es Branche und Tags. Natürlich kann ich mir 2 lokale Repositories auf die beiden Branche machen, wenn ich mir das switchen sparen möchte, aber aus Erfahrung (ich arbeite nun seit über 2 Jahren in einem Team von mehr als 10 Entwicklern mit GIT) kann ich sagen, dass man das eigentlich nicht benötigt. Und SoC ist es sehr wohl, wenn man unterschiedliche Branche oder Tags für unterschiedlichen Versionen anlegt (siehe GIT Flow). Im übrigen benötigt man auch nicht unterschiedliche Repos für CI, jedes halbwegs taugliche CI kann sich nämlich den Stand holen, den man angibt - sprich mach mir ein Build von Version 1 und eins von Version 2 geht ohne weiteres. |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Hallo zusammen,
erstmal danke für die vielen Antworten. Von meinem jetzigen Standpunkt her, sind die letzten Antworten und die enthaltenen Links sehr informativ, wenn ich schon ein bestehende Repositories habe. So habe ich es zumindest verstanden. Auf zwei Dinge möchte ich nochmal eingehen :
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Siehe dazu ![]() |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Ich muss mir das noch Mal durch den Kopf gehen lassen. Irgendwie ist das alles bei mir noch nicht richtig im Kopf angekommen, wie ich Repository-Strukturen aufbaue, bin immer noch in der Verzeichnis-Versions-Welt. |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Denk halt dran, das Du mit quasi einem Mausclick absolut sauber zu jedem beliebigen Revisionsstand gelangst. Je mehr "physisch" getrennte Repositories (die eigentlich "logisch" zusammengehören) Du dann hast, desto schwieriger wird das. Es gibt Leute, die einfach alles in ein Repository kippen, und damit wunderbar zufrieden sind. Ich finde das etwas... unübersichtlich bis unglücklich. Darum haben wir pro Projekt ein Repository und ein gemeinsames Subrepository für geteilte Units und Komponenten (hast du sowas auch vor?).
Insgesamt hat Uwe absolut Recht es ist Geschmackssache, und so lange man nicht anfängt in der Historie der Repositories rumzupfuschen, kann eigentlich auch nichts kaputt gehen. Ich würde aber wirklich versuchen, jegliche SVN Erinnerungen abzustoßen und mich voll auf die "neuen" Möglichkeiten einzulassen. @Uwe: Auf dem Server erlauben wir mehrere Heads, weil unser Entwicklungsplan das so vorsieht. Die Branches repräsentieren nunmal die verschiedenen Versionsstände, und werden nach Freigabe einer Version abgeschlossen. Aber bis zur Freigabe (Testen, Dokumentieren, etc.) ist das Projekt ja nicht im Winterschlaf, sondern da wird fleissig weiter entwickelt. Und unter Umständen wird schon an der übernächsten Version gearbeitet, weil eventuell eine Tech-Demo ansteht oder einfach die Spezifikation schon weit genug ist. Da wir zu mehreren an jeweils einem Projekt arbeiten, ist das ohne multiple Heads nicht elegant machbar...und offen gesagt seh ich keinen Grund, warum man die vermeiden sollte. Sherlock |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
So, nachdem ich jetzt eine Nach nochmal darüber geschlafen habe, bin ich zu folgendem Entschluss gekommen :
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Den letzten Teil hab ich nicht ganz verstanden: Gemeinsame Units versionierst Du mit, oder nicht? Weil da kann es von Version zu Version ja Änderungen geben, die nicht unerhebliche Auswirkungen haben. Wenn Du da also für ein Patch neuere gemeinsame Units verwendest, als in der ursprünglichen Version kann (muss aber nicht) es zu Problemen kommen.
Sherlock |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Nein, gemeinsam genutzte Units haben keine Version bei mir, da ich eh ganz wenige davon habe. Die gemeinsamen Units habe ich jetzt seit Delphi 2007 und hatte nur Probleme bei Delphi 2009 (Unicode). Ansonsten haben die Units bis jetzt immer Ihren Dienst getan.
Weshalb sollte ich diese Units in ein Repository stecken, da ich die Projekte und die Units eh immer auf die aktuelle Delphi-Version hebe ? |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Nunja, eventuell unterscheiden sich unsere Definitionen von gemeinsamen Units :D
Wir hier haben gemeinsame Units, in den Produkt-/Projektübergreifend Klassen und Methoden existieren, die das eine oder andere erledigen, was eben alle brauchen. Die unterliegen aber genauso dem Wandel wie die Projekte an sich. Manches mit schlafwandlerischer Sicherheit von Jahr zu Jahr. Es wäre fatal, einen Patch für einen Versionstand aus 2013 mit den Methoden von 2014 zu beheben. Selbst wenn sich keine Änderungen durch den Jahreswechsel ergäben, könnten neue Features eingebaut worden sein, die den Patch-Kunden eben nicht zustehen. Falls bei Dir gemeinsame Units unveränderlich sind...dann brauchste die freilich nicht zu versionieren...Falls ;) Sherlock |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Zitat:
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Grüße, Christoph |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Ich habe wahnsinnig viel gemeinsam genutzten Code. Es ist in zwei Libraries (=Repos) aufgeteilt:
Ein Projekt benutzt immer nur eine feste Revision einer Library. So kann jemand an der Library weiterarbeiten, das Projekt kann parallel auch weiter entwickelt werden und bei Bedarf zieht man den Library-Import auf die grade aktuelle Revision hoch. Hat das jemanden weitergebracht? Wahrscheinlich nicht. Ich fand nur die Unterscheidung von "gemeinsam genutzten Code" in die zwei "Kategorien" wichtig. |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Ich glaube es kristallisiert sich eine unterschiedliche Definition von gemeinsam genutzten Quelltext heraus. Ich denk hier, das muss jeder selber wissen, wie er hier seine Repositories aufteilt. Aus meiner Sicht macht alles Sinn, was hier geschrieben wurde, aber es ist auch sicherlich eine Geschmackssache. Ich habe, wie oben geschrieben mehrere Code-Snippets in einer Datenbank. Diese verwende ich ganz individuell in jedem Projekt. Ich habe hiermit sozusagen die Versionierung von den gemeinsamgenutzten Klassen und Methoden in meine Datenbank gelegt. Was ich aus meiner Sicht und vom Geschmack her viel flexibler finde.
Und bekanntlich lässt sich über Geschmack ja streiten ;-) |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Also bis auf das Delphi selbst steckt bei uns alles im Repository, selbst die Komponenten von Drittherstellern. So kann ich ein komplettes Entwicklungssystem einer älteren Version auschecken, mit einem kleinen Tool die Komponentenregistrierung im Delphi angepasst und das alte System läuft wieder. Macht leider manchmal bei Komponentenupdates etwas Arbeit die sich selbst installierenden Komponenten aus den allgemeinen Pfaden wieder rauszubasteln und in den eigenen Quellcodepfad wieder einzubauen, geht aber leider nicht anders.
Selbst die mitgelieferten Indys hau ich aus dem Delphi raus und kompiliere die aktuellen Quellen neu. Von daher steckt immer alles was zu einem Projekt gehört mit in dem Repository. Wenn ich z.B. Indy in zwei Repos benötige, werden sie doppelt gepflegt. Es gibt kein gemeinsames Repository. Meiner Meinung nach der Beste Lösung. |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Ich versuche das bei neuen Projekten konsequent so zu machen. Man sollte allerdings ein paar ![]() |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Das scheint ja genau das zu sein was man unter Subversion als
Delphi-Quellcode:
-Property kennt. Ich glaube ich werde mich nicht davor fürchten müssen, eines Tages umzusteigen.
externals
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
|
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Zitat:
Gibt es mittlerweile Neuigkeiten? Wie realistisch ist zumindest ein Vortrag geworden? |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Ich hab zumindest mal ne Session eingereicht.
Das liegt jetzt an den Verantwortlichen für das Programm, ob das auch stattfindet oder nicht :wink: |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Wir sind gerade dabei, die Agenda zu fixieren.
Bis spätestens Samstagmittag soll das erledigt sein (weil ich dann erstmal im Urlaub sein werde und meine Privatyacht bedauerlicherweise noch kein brauchbares Internet hat. Möglicherweise werden wir die Datenpakete per Helikopter an Land fliegen lassen müssen). Ich bin sicher, dass das Thema in der Agenda vertreten sein wird. |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
@RWarnecke: welchen Git-Server hast Du benutzt und unter welchem Betriebssystem? Würde mich abschließend zu dem sehr hilfreichen Beitrag noch interessieren.
Danke |
AW: Mercurial Struktur aufbauen (Benötige Hilfe)
Hallo Sven,
ich benutze einen Ubuntu 14.02 Linux Server, wo ich Git drauf installiert habe. Mit dem Git Client auf meinem Mac wird das Repository dann vom Mac auf den Linux Server übertragen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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 by Thomas Breitkreuz