Source Code Verwaltung

  • Allgemein

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Link.

    Source Code Verwaltung

    Hallo,

    wir suchen bei uns aktuell ein Quellcodeverwaltungsprogramm. Da ich selbst keins kenne wollte ich mal nach euren erfahrungen fragen.

    Anbei die Voraussetzungen:

    - Quellcode verwaltung
    - Eingabe von Informationen
    - Benutzer verwaltung
    - Server Basiert, nicht cloud
    - versionierung
    - Möglichkeit über API oder SQL etc. zugrif auf die Dateien bzw. Informationen

    der letzte Punkt ist mir sehr wichtig, da die Quellcodes teilweise für elektronische Komponenten sind.
    Ich selbst schreibe aktuell ein Programm das alle Informationen zu einem Produkt anzeigt.
    Hier habe ich schon alle Informationen aus 3 verschieden DB-Systemen miteinander vereint.

    D.h der Einkauf sieht und kann sich alle Daten zu einem Produkt in einem einzigen Programm anzeigen lassen.
    Bisher mussten Sie 3-4 verschiedene Programme nutzen(klar da jede Abteilung ein eigenes DB System / Programm hat).

    Deshalb ist es wichtig das ich auf die Verwaltung DB(SQL,Oracle(PL/SQL), xml, csv etc.) sowie die Archiv Dateien zugriff bekomme.
    Egal ob API oder direkt.

    Die elektriker haben irgendwas von SourceTree gesprochen(kenne ich nicht).

    Danke schonmal für eure hilfe :-)!

    Gruß

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @GOKTerek Wir (kleine Firma) arbeiten mit TortoiseSVN: tortoisesvn.net/index.de.html
    Bei einem größeren Pool würde ich den Team Foundation Server (TFS) nehmen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany danke für die Info, wir sind auch nicht soviele Programmierer bei uns 6 leute*, der rest user. Aber das sieht ja schonmal Interessant aus.
    Besonders da es Opensource ist + noch eine gute Doku hat. Da steht aber für Privatpersonen kostenlos und ich habe keinen Infos zum Preis gefunden :-(.


    Edit:

    Das war die TeamViewer Werbung wo stand "Für Privat Personen Kostenlos!". Denkt euch drei lachende smileys und ein FP

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GOKTerek“ ()

    GOKTerek schrieb:

    Besonders da es Opensource ist
    Die Quellen würde ich nicht anfassen, bestenfalls studieren.
    Gelegentlich kommt da auch ein Update zur bestehenden releasten Version.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Falls das angesprochene Git in Frage kommt, ich hatte neulich einen Thread zum Thema welche GUI und welches Web-Frontend für Git, in welchem diverse vorgeschlagen wurden. Siehe Welches Web-Interface und welche lokale GUI für Git? Ich kann mich nicht entscheiden ...
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    @RodFromGermany den Quellcode fasse ich auch nicht an, wie du schon meintest zum studieren. Vlt. kann man sich das eine oder andere abschauen oder bekommt neue Ideen für sein eigenes Projekt in anderer Form.

    @mrMo und @Marcus Gräfe es sollte nicht webbasiert bzw. die Projekte sollten nicht in der Cloud gespeichert werden. Für mich ist der zugriff auf die Daten wichtig. Nicht für meine Projekte, oder die aus der IT, sondern hier geht es um die Produkt Quellcodes aus der Elektrik, Die ich zu den CAD-Daten, Betriebsanleitungen, etc. bereitstellen möchte.

    Wenn Ihr sagt das ist kpl. Lokal also FirmenServer basiert, dann währe es interessant.
    Wir hosten Bitbucket auf einem eigenen Server bei uns in der Firma. Nix cloud.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    GOKTerek schrieb:

    Habe weitere Informationen bekommen, die IT möchte Gitlab in kombination mit SourceTree nutzen.
    Was sagt Ihr dazu?


    Klingt super, GitLab ist nice und man kann es self-hosted betreiben. Und SourceTree ist auch gut, wobei du bei der Wahl eines Git-Clients auch nicht wirklich viel falsch machen kannst (SourceTree, Tower, SmartGit, wurscht, sind alle in etwa gleich gut). Die Frage die sich mir persönlich eigentlich meist eher stellt, ist, wofür braucht man's(?). Schreibt man Code in einem Editor oder irgendeiner schrottigen IDE die keinen VCS-Support bietet, ja, dann macht es Sinn, sich extra eine GUI-Anwendung für die Versionsverwaltung zusätzlich zu installieren, vor allem wenn man zu faul ist um die git Befehle zu lernen. In allen anderen Fällen finde ich das aber einfach nur doppelt gemoppelt. Müsstest du eben rausfinden was am besten für euch passt.

    So oder so, die Entscheidung ist insgesamt sehr gut, GitLab ist zum Arbeiten einfach super praktisch und bietet halt auch Funktionalitäten, die über das reine Versions-Management hinaus gehen.


    Link :thumbup:
    Hello World

    GOKTerek schrieb:

    @Link danke für deinen Kommentar. SourceTree habe ich soweit verstanden. Jedoch Gitlab nicht, ich bin der meinung das ist Cloudbasiert(Projekte und Quellcodes), oder liege ich da Falsch?


    Du liegst nur teilweise falsch, GitLab lässt sich als SaaS nutzen, gehosted über ein Fremdsystem und somit in der Cloud. GitLab kann aber ebenso selbst auf einer internen Maschine gehostet werden, quasi ganz genauso wie zB auch Gitea.
    Siehe about.gitlab.com/install/



    Link :thumbup:
    Hello World
    Naja, so wie GitHub eben, es ist eine Online-Plattform zur Sourcecode-Verwaltung. Gehostet auf einem Server der über gitlab.com erreichbar ist, somit also nicht bei dir Zuhause. Bei GitLab ist es genau so, oder auch bei BitBucket, du kannst den Dienst nutzen über die Plattform die vom Anbieter bereitgestellt wird, in der Cloud eben, das nennt sich SaaS (Software as a Service). Self-hosted bedeutet, dass du das Produkt selbst bei dir Zuhause installierst (oder halt auf einem Server auf den du Zugriff hast), das heißt das Web-Portal läuft in deiner Infrastruktur.
    Anderes gutes Beispiel wäre auch WordPress, das kannst du ja auch über einen Hosting Anbieter im Rahmen eines sog. "Wordpress-Hostings" verwenden. Du kannst aber genauso gut WordPress lokal auf deinem PC installieren, dort hast du halt volle Kontrolle, Nachteil ist dass du dich um infrastrukturelle Dinge selbst kümmern musst. Meistens ist ein Cloud-Service (SaaS) unkomplizierter, schneller eingerichtet und man hat damit wenig operativen Aufwand. Self-Hosted hingegen hat beispielsweise aber die Vorteile der vollständigen Kontrolle über alle Daten und Prozesse, vor allem auch wenn Datenschutz ein heikles Thema ist und der Cloud-Service in einem Land gehosted wird, dessen Datenschutzgesetze nicht vereinbar sind mit den Anforderungen der Dienste die darüber laufen sollen. Was besser oder schlechter ist, kommt also wesentlich drauf an, was die Anforderungen sind, tendenziell bevorzuge ich persönlich in den meisten Fällen die SaaS-Variante.
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link“ ()

    @Link Aha! Ich versuche mal jetzt alles zusammen zu fassen.

    1.) Die Projekte SourceCodes liegen bei uns auf den Servern.
    2.) Die Informationen zu dem Projekt liegen jedoch in der Cloud bzw. auf einem externen Server(Ersteller, Status, Version)

    Richtig?

    GOKTerek schrieb:

    Richtig?


    Ne, so kann man das irgendwie nicht sagen ^^ Mir scheint du hast so ziemlich keinen Schimmer was du hier machen sollst. Ich schlag vor du schaust dir Git erst mal an.

    Server Basiert, nicht cloud

    Das ist nicht möglich, das ist wie "Wasser ist ok, es darf nur nicht flüssig sein", ergibt also irgendwie nicht Sinn. Jeder Cloud-Dienst läuft auf einem Server. Aber nicht jeder Server bietet Cloud-Dienste an. Jedes Wasser ist flüssig, aber nicht jede Flüssigkeit muss Wasser sein.

    Git ist ein Mittel zur Versionsverwaltung, ähnlich wie SVN, nur eben in geil. Versionsverwaltung bedeutet -unter vielem anderen-, dass Datei-Änderungen zu jeder Zeit nachvollziehbar und revertierbar und wiederherstellbar sind. Ein Verzeichnis auf deiner Festplatte kann mit Git versioniert werden, indem der git init Befehl ausgeführt wird (dass Git bereits installiert ist, wird vorausgesetzt, lul). Anschließend kannst du Änderungen an Code jederzeit über git add stagen und mit git commit einen Snapshot des momentanen Stands speichern. Sobald dein erster Commit angelegt ist, wird automatisch ein Standard-Branch erstellt (idR master oder main). Du kannst neue Branches ("Entwicklungszweige") erstellen und sie später zusammenführen.
    Das alles ist erst mal nur das, was bei dir auf deinem PC passiert. Aber sicherlich arbeitest du ja mit mehreren an einem Projekt, das heißt es muss ein zentrales Repository eingerichtet werden, zu dem jeder Entwickler seine Änderungen hin-senden kann. In Git-Sprache bedeutet das, man "pusht" die Changes zu einem remote repository. Wo das zentrale Repo liegt, ist völlig wurscht, das kann ein interner Server sein auf den jeder Zugriff hat oder sonst was. Es könnte auch ein Cloud-Service sein, wie zum Beispiel GitLab, GitHub oder BitBucket oder von denen entsprechend die self-hosted Varianten, die irgendwo in eurem Netzwerk gehosted sind. Macht am Ende keinen Unterschied. Am Ende des Tages sieht der Workflow eben in etwa so aus, dass jeder auf seinem eigenen PC am Projekt arbeitet, hin und wieder seine Änderungen pusht (sodass auch andere die Änderungen die man geschrieben hat, verwenden können) oder eben die Änderungen von den Kollegen auf seine Maschine zieht ("pullen").

    SourceTree, Tower, GitKraken, TortoiseGit oder SmartGit sind Git Clients. Das sind nur Programme die dazu da sind, um die ganzen Dinge die man mit Git so machen kann, schön über eine grafische Oberfläche zu verwalten, anstatt in einem tristen, schwarzen Konsolenfenster. Man fügt also dort das Projekt (können auch mehrere sein, was man halt so hat) hinzu, die Software erkennt dass es ein Git-Verzeichnis ist und kann dort eben die gängigen Aufgaben die man mit Git tagtäglich macht, über eine hübsche Oberfläche vornehmen, wie zum Beispiel das git log anschauen, Branches mergen, Pushen, Fetchen, Pullen, Committen, Cherry-Picken und weiß der Teufel was noch alles.

    In Kurz:
    - Git ist nur rein die Versionsverwaltung (versionierte Projekte erkennt man daran, dass es im Hauptverzeichnis ein .git Verzeichnis gibt)
    - GitLab, BitBucket oder GitHub sind remote repositories, von denen man Code pullen oder zu denen man seinen Code pushen kann - eben mit dem Zusatz einer Web-Oberfläche für die grafische Verwaltung. So wie ein Git-Client quasi, nur dass es eben im Browser läuft.
    - Git Clients sind installierbare Programme zur Visualisierung von Git Logs und zum Managen von Git-Operationen in einer grafischen Oberfläche

    Alles weitere zu Git kannst du dir mal googlen, da gibt's einiges zu lesen und das würde ich dir auch empfehlen zu tun :)
    Hello World

    GOKTerek schrieb:

    1.) Die Projekte SourceCodes liegen bei uns auf den Servern.
    2.) Die Informationen zu dem Projekt liegen jedoch in der Cloud bzw. auf einem externen Server(Ersteller, Status, Version)

    Richtig?
    Nein, so nicht.

    GitLab kann man selbst installieren und betreiben oder man kann es in der Cloud mieten. Projekte und Informationen zu den Projekten liegen da, wo gehostet wird, also entweder auf dem eigenen Server, oder, wenn man sich für die Cloud entscheidet, eben in der Cloud.
    Mit freundlichen Grüßen,
    Thunderbolt
    @Thunderbolt danke für die Antwort! genau das wollte ich wissen!
    @Link doch ich verstehe schon was ein GIT ist, es funktioniert wie ein PDM System(das CAD Daten versionsverwaltet) oder ein ERP System(das Artikel und Stücklisten Versionsverwaltet).

    Jedoch weiß ich bei den beiden System PDM und ERP wo die Daten liegen. Als bsp. im PDM-System stehen die Information(Artikel-Nr., Ersteller, Datum, Benennung, Status(neu, in Bearbeitung, Freigegeben ), Werkstoff, aktuelle Version und 100 andere Infos ) in einer SQL DB(manchmal in einer Oracle DB). Die CAD-Daten(also die 3D Modelle, vergleichbar mit unserem Source Code), liegen auf einem anderen Internen Server. Und durch die kombi von beiden Informationsquellen durch eine Client Software(in dem fall vom GIT System ist es SourceTree), kannst du auf die Daten zugreifen!

    Nun da ich das GitLab nicht kenne, weiss ich nicht wo die Informationen liegen. Ich muss das aber wissen, da ich selbst eine Clientsoftware für unser Unternehmen erstelle! Ich fasse aktuell alle Daten in einer Clientsoftware zusammen. D.h aktuell muss der Einkauf / Vetrieb / Arbeitsvorbereitung mit verschiedenen Programmen(Clientsoftware) arbeiten um an alle Informationen zu einem Produkt zu kommen.

    Du kannst dir vorstellen wie Aufwendig das ist wenn du 10 mal die selbe Artikel-Nr. in verschiedenen Programmen suchst und dir noch nicht mal sicher sein kannst ob du die Informationen in diesem System finden kannst.
    Deshalb meine lösung(Bild1 sowie Bild2). Es kombiniert alle DB's in einem. Und dazu gehört zukünftig auch das GIT System! Denn die Quellcodes der Elektroabteilung gehören zu den Produkten! Und müssen somit überall einfach verfügbar sein. In Bild 2 habe ich ein kreuz gemacht, da muss dann Theoretisch die Info stehen, Achtung hier ist noch ein Quellcode! Und wenn du drauf klickst kannst du dir den code anzeigen lassen, und evtl. an unseren Lieferanten versenden!

    Deshalb ist es für mich sehr wichtig zu wissen, wie die Daten abgelegt werden, wo sind die Informationen (SQL-DB, Oracle oder anderes System) und wo liegen die Dateien.
    Bilder
    • Bild_001.PNG

      217,08 kB, 1.869×927, 83 mal angesehen
    • Bild_002.PNG

      56,21 kB, 1.191×744, 74 mal angesehen