Projekt mit GIT umsetzbar?

  • Hi Zusammen.
    Ich versuche ein Problem zu lösen und hoffe GIT ist dafür geeignet. Bin aber ein Neuling darin.


    Ok, ich erkläre mal vereinfacht die Situation.


    Es geht um drei Systeme, auf allen drei Systemen gibt es einen Ordner mit Skript 1-10. Die Skripte müssen auf allen Systemen die selben Dateinamen haben. Allerdings sind nur die Skripte 1-4 auf allen drei Systemen gleich. Die Skripte 5-7 sind auf den Systemen 1 und 2 gleich. die Skripte 8-10 sind auf dem Systemen 2 und 3 gleich.


    Ich muss es jetzt hin bekommen das alle Skript auf dem Jeweiligen System bearbeitet werden und dann später von den anderen System "upgedatet" werden können. Allerdings muss sichergestellt werden das zB Skript5 auf System3 nicht mit Skript5 vom System2 überschrieben wird.


    Ist es also möglich den Skriptordner auf allen drei Systemen mit GIT zu "verbinden" und trotzdem auf jedem System bestimmte Scripte vom überschreiben zu schützen???


    Ist das so verständlich was ich meine?


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • müsste mittels der gitignore zu lösen sein

  • Hi Moorviper
    Ok, hab mir das Prinzip mal angesehen. Ist ja recht simpel und müsste klappen. Zur Sicherheit noch ne Frage. Werden die Datein in .gitignore in beide Richtungen ignoriert? Also beim "push" sowohl auch beim "pull"?


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Moin,


    hm, mit gitignore werden die Scripte dann aber völlig ignoriert und gar nicht ins Git aufgenommen. Klingt irgendwie auch nicht zielführend.


    Ich würde mit drei Branches arbeiten, pro System ein Branch mit den jeweils passenden Scripts. Dann musst du auf dem jeweiligen System nur den passenden Branch auschecken. Damit solltest du eigentlich deine Anforderungen abdecken können.


    Ciao Louis

  • stimmt das updaten wird dann blöd

  • Und beim Bearbeiten der Scripte, die auch auf anderen System laufen sollen, muss man dann aufpassen, dass man nur solche zusammen in ein Commit packt, die zusammen gehören. Und dann muss man sorgfältig mit cherry-pick arbeiten, um die Änderungen in die anderen Branches zu bekommen.


    Sind die Scripte so unterschiedlich, dass man nicht z.B. mit einer Konfigurationsdatei außerhalb der Scripte arbeiten kann?


    Lars.

  • Stimmt. Ist alles nicht so perfekt :(
    Über die config Datei hab ich heute auch schon nachgedacht. Wäre einmalig eine Menge Arbeit. Aber dann würde das GIT klappen.
    Ich muss da erst nochmal etwas drüber nachdenken.
    Hab noch 350km Autobahn vor mir. Da kann ich noch ein wenig grübeln :(

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Warum nicht auf allen drei Systemen die gleichen Scripte und nur unter unterschiedlichen Namen verlinkt?


    -> für alle Scripte gleicher Versionsstand.

  • Ne. Die Dateinamen müssten schon gleich bleiben. Sonst stimmt das ganze Umfeld nicht mehr.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Was meinst du damit? Dein ganzes Umfeld bemerkt den Unterschied doch nicht, sondern sieht den Namen des Links.

  • Oh. Hatte deinen Vorschlag falsch verstanden. Das würde echt gehen.
    Dann könnte ich doch einfach in die .gitignore vom System1

    Code
    ./*.sys2
    ./*.sys3
    ./*.sysX


    Eintragen. Oder akzeptiert das keine Wildcards?

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Doch, wenn ich doch hingehe und benenne die Dateien die nicht auf allen Systemen gleich sind um in

    Code
    Script1_sys1
    Script1_sys2


    Dann würden sys1 und sys2 die Dateien im git sichern. Sys1 würde aber "Script_sys2" ignorieren und Sys2 würde "Script_sys1" ignorieren. Es wäre also alle Dateien im git, aber jedes System würde sich nur seine "eigenen" holen.


    Richtig? Oder denkfehler?

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Ich glaub ich mache mir heute Abend einfach mal ne Testumgebung. Dann teste ich mal ob es so klappen würde.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Das halte ich auch für eine gute Idee. :)
    Ich weiß nicht, ob du Dateien in ein git packen kannst, aber in einem anderen Klon nicht auschecken willst (per gitignore). Das geht eigentlich nur mit branches.


    Müssen die alle in einem Verzeichnis liegen? Sonst würde ich pro Gruppe jeweils ein eigenes git machen.


    Lars.

  • Wie gesagt, ich teste es mal. Wenns nicht klappt dann werd ich wohl in den sauren Apfel beißen müssen und alles ändern. Wäre ja ne einmalige Sache. Das passiert halt wenn man sich beim starten eines Projektes über sowas keine Gedanken macht :(
    Die Gefahr ist bei solchen Änderungen halt immer das man sich irgendwo nen fiesen Bug einbaut. Das wollte ich eigentlich vermeiden.
    Bin da immer etwas ängstlich, gerade wenn noch andere mitwirken.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Das hängt jetzt natürlich von dem Projekt ab, aber du verrätst es uns ja nicht. Wäre ja auch nur interessant, wenn es was mit dem vdr zu tun hat. :)
    Und für's das Refactoring macht man sich einen neuen Branch auf, und testet natürlich ordentlich, bevor man es live schaltet. Ansonsten ist es business as usual. Es gibt kein langlebiges Projekt, bei dem man sich zu Anfang schon gleich die richtigen Gedanken gemacht hat. Irgendwas ist immer...


    Lars.

  • Irgendwas ist immer...


    Das kannst du laut sagen ;)


    Ich hab mich erst vor kurzem über GIT schlau gemacht. Ist noch alles neu für mich. Das mit den Branches hab ich mittlerweile bei meinem Skindesigner Skin umgesetzt und klappt prima. Denke werde es dann genauso machen wie du vorgeschlagen hast.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hi Zusammen
    Hier ne kurze Info wie ich es nun für mich gelöst habe.
    Nachdem meine Versuche mit .gitignore und der exclude Datei nicht so ganz funktioniert haben und auch verschiedene Branches nicht so perfekt waren, hab ich mich entschieden die Skripte in separate Ordner auf zu teilen. (scripts_all, scripts_sys1, scripts_sys2, usw) und hab diese dann verlinkt.
    Vorteil ist das alle Systeme das selbe git nutzen können und immer up-to-date sind ;)


    Vielen Dank für die Anregungen.
    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!