Hallo,
@Brro87:
Die geschickte Verwendung von Git ist ein wichtiges Thema. Da sind wir noch in der Einarbeitung. Danke für das Beispiel! Mein bisheriger Kenntnisstand dazu: Es gibt eine unüberschaubare Vielzahl von Branchingmodellen und Workflows, von einfach bis sehr komplex. Diese haben, je nach Anwendungsfall, alle ihre Vor- und Nachteile. Das war im Forum schon einmal Thema, und ein User hatte eine Modellbeschreibung verlinkt, mit der er gut zurechtkommt:
Hallo zusammen, ich interessiere mich für revisionssichere Dateiablagen von
Codesys Projektdateien. Momentan nutze ich
Codesys 2.3 - die Projektdateien sind hier nur als binary-file (.pro) vorhanden. Eine direkte diff-Betrachtung kann zwischen zwei Commits hier leider nicht erfolgen. Ich habe...
www.sps-forum.de
So würde ich erstmal anfangen, bin da aber noch vollkommen unerfahren und versteh erstmal nur die Hälfte ;-). Verwendet ihr ein Standardschema, was irgendwo beschrieben ist?
@Alle: Evtl. sollte man zum Thema Git-Workflow mal einen eigenen Thread aufmachen, damit es nicht zu übersichtlich wird. Besteht da Interesse? Ich muss selber erstmal ein paar Hausaufgaben machen, bis sich da konkrete Fragen ergeben.
Zum Thema Library
Ich bin auf die erste Stelle gestoßen, wo das Konzept mit meinem Programmierstil kollidiert. Konfigurationsdaten behandle ich folgendermaßen:
Die Daten stecken in Structs. Anstatt einer globalen Konfigvariablenliste gibt es ein Programm "Configdaten" darin sind die Struct-Instanzen der einzelnen Anlagenteile als Output-variablendas deklariert (dadurch schreibgeschützt). Beim Start wird dieses Programm einmal ausgeführt und schreibt die Daten in die Struckts. Man kann in dem Programm übersichtlich und flexibel initialisieren (struckt in struct, aus datei, hartgecoded). Zugreifen kann man kann genauso wie auf eine globale Variablenliste. Ggf. sind die Structs als Array deklariert für "ConfigAnlagenteil[1..n]".
Der FB, der für den Anlagenteil zuständig ist, kriegt nicht die Configdaten übergeben, sondern nur die Nummer des Anlagenteils. Ab da „weiß“ er selber, wo er hingucken muss.
Ich würde das Konzept ungern verwerfen, denn es hat meiner Meinung nach viele gute Eigenschaften.
Problem: Das Programm Configdaten ist anlagenspezifisch, die FBs in der Library „kennen“ es also nicht. Mähhhh!
Mein Ansatz:
Anstatt der Library gibt es im Projekt einen Ordner für FBs die zum Projekt gehören, aber auch in anderen Projekten verwendet werden. Git wird so konfiguriert, dass es den Inhalt dieses Ordnert in den verschiedenen Solutions gleich hält.