Perfoce & Projekt Synchronisierung

  • Hallöchen Community,

    wir hatten es bereits vor einer weile über das Thema "Wie wir in Team zusammen Arbeiten". Darauf hin habe ich das mit dem Google Drive erwähnt, wo uns kyodai bereits darauf hingewiesen hat das es nicht wirklich Praktisch ist, da es eher zum einmaligen Dowload der Daten geeignet ist.

    Nun haben wir leider wirklich immer mehr Probleme mit der Cloud bekommen, weshalb wir gerne umsteigen wollten. Das Setup von Perforce sieht leider ziemlich merkwürdig aus, weshalb wir hier einmal um Hilfe bitten ;D

    Uns wäre eigentlich alles recht, solange nur die Daten Gesynct werden, die sich auch geändert haben.

    Was Perforce angeht, finde ich nur Möglichkeiten das ganze Local einzurichten. Wir brauchen es ja aber als Team. Könnte uns da jemand weiter Helfen. Wir sind wirklich am ende mit dem Shi...

  • Perforce ist ja nur der Clint der die Versionierungen verwaltet.

    Du kannst alles Lokal speichern oder du brauchst ein Server wo alles gespeichert wird.

    Eine Möglichkeit hierfür wäre zb Github.


    Somit brauchst du Perforce und Github. (Clint + Server)


    Vielleicht ist es auch kein Fehler das erstmal Lokal auf einem Rechner oder zwei Rechner im Netzwerk zu testen.


    Aber mal so Grob:


    1.Du musst ne Mainline anlegen. Die Mainline ist der Rotefaden der durch eure Projekt läuft und an der Jeder deines Teams daran arbeitet. Zur Mainline gibt es noch ein paar andere Variaten wie beispielsweise der Release. Am Release wird gar nicht gearbeitet sondern nur Final getestet.

    Heißt Eure Projekt wandert von der Mainline in den Release

    Ihr könnt immer wieder ne neue in den Release laden die sich dann jeder runterläden kann. (Die Aktuelle Version)


    Das schöne an den Mainline ist das Ihr hier auch Rechte vergeben könnt. So kann zb nicht jeder alles bearbeiten.


    Jeder hat das Projekt Lokal auf Rechner! Nur sollte man das Projekt dann nur noch über Perforce öffnen, damit Perforce mitbekommt dass jemand am Projekt arbeiten möchte

    Öffnet man das Projekt ganz normal über den Launcher, bekommt das Perforce nicht mit und auch jemand anderer könnte am Projekt arbeiten. Spätestens wenn der jenige der ohne Perforce zu starten hochladen will, sagt Perforce das es ne andere Version gibt. (So zerstört man den Sinn der Versionierung. :)

    Wer am Projekt arbeiten will macht ein sog. Checkout. das bedeutet das Projekt wird für alle anderen Gesperrt und nur noch er kann am Projekt arbeiten.

    Perforce kann man mit Unreal Koppeln das heißt man muss nicht zwangläufig einen Checkout machen es reicht wenn man das Projekt über Perforce start.

    Das Toll ist dann: Auch jemand anderer kann das Projekt öffnen und daran arbeiten.

    Willst du nun ein Material löschen, sagt dir Unreal das dass Material nicht ausgecheckt ist und Unreal fragt ob du die Datei und zwar nur die Datei auschecken willst.

    So könnte man zb für verscheidene Leute verschiedene Sublevels erstellen und jeder tut nur dort auschecken wo er gerade daran arbeitet.


    Man muss nur darauf achten das man sich sinnvoll aus und eincheckt. Jedem sollte klar sein das wenn er sich im ganzen Projekt auscheckt niemand sonst mehr daran arbeiten kann., (Was ja auch gewollt sein kann)


    Wer aufhört am Projekt zu arbeiten macht Checkin gibt ein Text, add new material... und läd alles auf den Perforce server.


    Der nächste der Weiterarbeiten will, startet perforce macht einen Checkout und wird dann von Perforce darauf hingewiesen erst die Aktuelle Version (Get Revision) runterzuladen um die aktuelle Version zu bekommen und erst dann ist das Arbeiten möglich.


    Ein Syncen oder zusammenkopieren gibt es deswegen nicht.


    Ein Zeilen Code Merge funktioniert nur mit echten Quellcode.


    Vierlleicht bringen dich die Begriffe weiter.

    Wenn du Probleme hast, solltest du definitiv spezifischer sein.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Das Schwirige nun ist, wie die Herangehensweise ist.

    Wir haben uns einen Linux Server besorgt, um auf diesen Seafile zu installieren. Darüber wollten wir unser Projekt machen. Nur ist das Setup ziemlich aufwendig. Habe nun endlich mal geschafft das MSQL läuft. Jetzt fehlt eben das Seafile. Am besten wäre es jetzt zu wissen wie ich unseren Linux Server nutze, um Dort quasi das Projekt anzulegen (Local)

    Hoffe das ich das so einigermaßen richtig denke

  • Du kannst alles Lokal speichern oder du brauchst ein Server wo alles gespeichert wird.

    Eine Möglichkeit hierfür wäre zb Github.


    Somit brauchst du Perforce und Github. (Clint + Server)

    Ich wüsste nicht, dass man Perforce mit Github verwenden kann, da Github für Git-Repositories ist und Perforce und Git zwei unterschiedliche SCM-Systeme sind.

    Ein Zeilen Code Merge funktioniert nur mit echten Quellcode.

    Nichtsdestotrotz kann man Blueprints in verschiedenen Version gleichzeitig laden und die nebeneinander aufmachen und vergleichen. Wenn man immer kommentiert welcher Bereich was macht, kann man auch Blueprints mergen.



    Ich persönlich würde Git + Git LFS empfehlen. Die meisten Projekte hoste ich auch Gitlab.com (auch als LFS-Server). Für mein größtes Projekt (~20GB im Content folder) habe ich hier ein Raspberry PI als LFS-Server im Netzwerk, aber das eigentliche Repository liegt auf Gitlab.com. Da ist das Repository-Limit bei 10GB.


    Github regelt ab einer Datei Größe von 100 Mb ab. Das bringt leider auch nicht viel weiter

    Mit git LFS könntest du bei Github Dateien bis 2GB speichern.


    Aber wenn ihr schon einen eigenen Server habt, dann könnt ihr auch dort ein LFS-Server installieren. Der "offizielle" Server läuft auch auf Linux.

    Dann bräuchtet ihr auch kein Mysql und nix, nur die LFS-Server executable.

    (Natürlich könntet ihr auf dem Server auch den Perforce / Helix-Server installieren. Perforce hat halt den Vorteil, dass es als zentrales SCM konzipiert ist, im Gegensatz zu git.

    Oder ihr hostet eine eigene Gitlab-Instanz oder so, aber das braucht es eigentlich nicht).


    Ich habe noch nie mit Seafile gearbeitet, aber es sieht nach einem normalen Programm zum teilen von Dateien aus, von daher: Ihr solltet ein vernünftiges SCM-System verwenden. Egal ob es nun Perforce, SVN, Subversion, Plastic, git, hg oder sonst was ist.

  • Ich wüsste nicht, dass man Perforce mit Github verwenden kann, da Github für Git-Repositories ist und Perforce und Git zwei unterschiedliche SCM-Systeme sind.

    Ja Git ist ein verteiltes dezentrales System und Perforce ein Zentrales System.


    EInfach mal Google nach Git, Perforce Integration fragen.

    Ich persönlich würde Git + Git LFS empfehlen. Die meisten Projekte hoste ich auch Gitlab.com (auch als LFS-Server). Für mein größtes Projekt (~20GB im Content folder) habe ich hier ein Raspberry PI als LFS-Server im Netzwerk, aber das eigentliche Repository liegt auf Gitlab.com. Da ist das Repository-Limit bei 10GB.

    Hast du Perforce schonmal benutzt ? Als wir nutzen schon eine weile Perforce und sind damit sehr zufrieden. Ich wüsste nicht was gegen Perfoce sprechen könnte.

    Was mir an Git nicht gefällt ist dieser Opensource Touch. Auch wenn Git zu microsoft gehört habe ich persönlich ein ungutes Gefühl dort meine Daten hochzuladen.

    WIr speichern alles auf nem eigenem Server.

    Was auch gegen Git spricht ist die Möglichkeit das man Perforce direkt mit Unreal verbinden kann. Den Get latest und Submit kann man so direkt in Unreal machen.

    Perforce muss glaube zwar geöffnet sein aber dann funktioniert das aus Unreal heraus sehr gut.


    Hat uns nun auch schon einige male sehr viel Zeit erspart aber man geht vielleicht auch höhere Risiken ein.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • EInfach mal Google nach Git, Perforce Integration fragen.

    Warum sollte ich eine Bridge verwenden und nicht direkt git selber?

    Hast du Perforce schonmal benutzt ? Als wir nutzen schon eine weile Perforce und sind damit sehr zufrieden. Ich wüsste nicht was gegen Perfoce sprechen könnte.

    Ja habe ich. Ich habe auch geschrieben, dass ich persönlich git empfehlen kann. Ich kann arbeiten ohne irgendwas laufen haben zu müssen, ich kann einfach mehrere remotes haben und die Performance von git war deutlich besser.

    Was mir an Git nicht gefällt ist dieser Opensource Touch

    Was heißt das denn?

    Auch wenn Git zu microsoft gehört habe ich persönlich ein ungutes Gefühl dort meine Daten hochzuladen

    Git gehört nicht zu Microsoft.

    Github.com schon, aber man braucht es nicht um git zu verwenden. Git braucht überhaupt nichts außer sich selbst und eine Commandline um zu funktionieren, das ist schonmal ein Vorteil für git.

    Was auch gegen Git spricht ist die Möglichkeit das man Perforce direkt mit Unreal verbinden kann. Den Get latest und Submit kann man so direkt in Unreal machen.

    Perforce muss glaube zwar geöffnet sein aber dann funktioniert das aus Unreal heraus sehr gut.

    Das geht auch mit git. Und man muss nichts geöffnet haben.

  • Warum sollte ich eine Bridge verwenden und nicht direkt git selber?

    Git ist der Speicherplatz wo die Daten gespeichert werden (Server) git hub ist der Clint der auf den Server zugreift.


    Ob du nun aber einen Git Clint oder Perforce verwendest macht doch keinen unterschied.


    Bekannte git Clints sind:

    GitHub

    Gitkraken

    Smartgut

    Sourcetree

    Git gehört nicht zu Microsoft.

    Doch seit letztem Jahr ist Microsoft für 7,5 Mrd Euro der neue Besitzer von Github.

    https://www.heise.de/newsticke…en-US-Dollar-4067633.html



    Was heißt das denn?

    Weil git Opensource ist und ich finde das merkt man auch.

    Das geht auch mit git. Und man muss nichts geöffnet haben.

    Das glaub ich nicht. Unreal kann sich nicht direkt Connecten nur über einen laufenden Clint im Hintergrund.


    SO sieht das Manü im Moment aus:

    https://forums.unrealengine.com/filedata/fetch?id=1216647


    Git ist hier noch in der Betaphase

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Git ist der Speicherplatz wo die Daten gespeichert werden (Server) git hub ist der Clint der auf den Server zugreift.


    Ob du nun aber einen Git Clint oder Perforce verwendest macht doch keinen unterschied.

    AAAAAAAAAAAAAACHSO. Du meinst die GithubDesktop App? Die braucht man aber nicht. Die macht auch nichts anderes als die git-scm.exe oder wie die heißt aufzurufen. Ich beziehe mich auf git selbst. Ich verwende es nur über cmd, da habe ich kein Client. Ich finde die visuellen SCM-Dinger nur verwirrender als alles andere.


    Und das ist schon falsch. Git braucht und hat keinen Server. Git funktioniert ohne Probleme rein lokal. Und GitHub ist kein Client, sondern der Remote (Server). Mit GitHub Desktop hat man wie gesagt nur einen Wrapper um die git.exe.


    Also sollte die Liste mit den Git-Clients so aussehen:

    GitHub Desktop

    Gitkraken

    Smartgit

    Sourcetree


    Aber man braucht sie halt nicht.

    Doch seit letztem Jahr ist Microsoft für 7,5 Mrd Euro der neue Besitzer von Github.

    https://www.heise.de/newsticke…en-US-Dollar-4067633.html

    Dieses Thema gab es schonmal in einem anderen Thread. Git und GitHub sind nicht dasselbe. Man braucht nicht GitHub um Git verwenden zu können. Ich und (wer auch immer) in dem anderen Thread haben uns auf Git selbst bezogen. Nicht auf GitHub.


    Das glaub ich nicht. Unreal kann sich nicht direkt Connecten nur über einen laufenden Clint im Hintergrund.

    Womit sollte man die UE denn connecten? Ich habe keinen Client im Hintergrund laufen und es geht

  • Wenn du sagst du nutzt git

    Womit sollte man die UE denn connecten? Ich habe keinen Client im Hintergrund laufen und es geht


    ohne Probleme rein lokal.

    Wenn du sagst du nutzt git lokal dann meinst du damit nicht im Team mit anderen irgend wo anderst auf der Welt ?


    Das heißt du hast dann auch nur Zugriff wenn dein Rechner an ist oder weil dann brächtest du ja sowas wie ein Server bei dir zu hause oder wo auch immer.

    Ich nehme mal an du nutzt git nur für dich selbst aber nicht im Team ?

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Wenn du sagst du nutzt git lokal dann meinst du damit nicht im Team mit anderen irgend wo anderst auf der Welt ?


    Das heißt du hast dann auch nur Zugriff wenn dein Rechner an ist oder weil dann brächtest du ja sowas wie ein Server bei dir zu hause oder wo auch immer.

    Ich nehme mal an du nutzt git nur für dich selbst aber nicht im Team ?


    [...]

    Git braucht und hat keinen Server. Git funktioniert ohne Probleme rein lokal.

    [...]

    Git selbst funktioniert ohne Server rein lokal. Ich benutze (auch im Team) git auf Gitlab.com (manchmal auch Github):

    Die meisten Projekte hoste ich auch Gitlab.com (auch als LFS-Server). Für mein größtes Projekt (~20GB im Content folder) habe ich hier ein Raspberry PI als LFS-Server im Netzwerk, aber das eigentliche Repository liegt auf Gitlab.com. Da ist das Repository-Limit bei 10GB.

    Für mein / unser größtes Projekt habe ich ein PI als LFS-Server konfiguriert, der dann nur die .uassets hat. Im Repository selbst sind nur die LFS-Pointer.


    Meine Frage mit dem 'connecten' bezog sich darauf, dass das Plugin für Git ja nichts anderes macht als die Commands, wie add, commit und push der eigentlichen git.exe aufzurufen. Das mache ich ja eh über die Commandline, deshalb frage ich mich warum es hier immer um einen Client und eine Connection geht.


    Nun zurück zum eigentlichen Thema:


    Smily Ihr solltet euch erst für ein SCM-System entscheiden, egal welches. Erst wenn ihr das habt, kann man eine Anleitung geben wie der Server konfiguriert werden muss / was ihr braucht.


    Bei Git / Git LFS kann ich helfen :)

  • Sooo leider stehen wir wieder ganz am Anfang unseres Problems. Ich bin dieses Thred jetzt bestimmt 5x durch gegangen, steige aber durch eure Diskussion nicht wirklich durch.

    Ihr müsst das mal aus meiner Perspektive sehen...Wir versuchen unser Projekt zu teilen, damit jeder daran herum basteln kann. Nun werden wir mit begriffen wie "Perforce, SVN, Subversion, Plastic, git, hg" überworfen, und müssen daraus nun irgendwie schlau werden.


    Gibt es nicht einfach eine Liste die man abarbeiten kann, und gut is?

    Kommt jetzt wahrscheinlich ziemlich Dulli herüber, aber so langsam könnte ich die ganze Kiste aus dem Fenster schmeißen.


    Ich hoffe das es uns hier einer etwas näher bringen kann wie wir das ganze nun Einstellen könne.


    somit schon mal danke

  • Ich nutze gerade mit Tomarr Perforce und das klappt sehr gut.


    Wie wäre es wenn du Perforce einfach einrichtetest und dann uns hier Step per Step mitteils was dein Problem ist.


    1.Du brauchst einen Server

    2.Dort installierst du den Perforce Server

    3.Den Clint installierst du auf deinem Rechner

    4.Anleitungen wie man Perforce einrichtet gibts jede Menge auf Youtube. Aber ohne konkretes Problem wirds schwierig zu helfen.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Ich nutze gerade mit Tomarr Perforce und das klappt sehr gut.

    Ja, inzwischen klappt es recht gut, auch wenn es einige Zeit gebraucht hat bis ich mit der Einrichtung klargekommen bin. Das schöne ist, das du zumindest den Upload direkt in Unreal benutzen kannst. Daher müsst ihr dann halt aufpassen, dass ihr keine unfertigen BPs mit hoch ladet, damit die anderen dann das Projekt auch noch testen können. Aber ansonsten eine echt gute Sache.

  • dass ihr keine unfertigen BPs mit hoch ladet, damit die anderen dann das Projekt auch noch testen können. Aber ansonsten eine echt gute Sache.

    Dafür könnte man auch die Developer-Ordner verwenden (also Kopie vom BP in privaten Ordner packen bis es fertig ist) oder eine Kopie mit _Feature/Branchname im normalen Content-Ordner.

    So kommt es eigentlich nicht zu Problemen, aber das muss natürliches jedes Team selbst irgendwie austesten