Grundsatzdiskussion: Binärdateien (z. B. Bilder) in Git-Repositorys – Ja oder nein?

  • Allgemein

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Grundsatzdiskussion: Binärdateien (z. B. Bilder) in Git-Repositorys – Ja oder nein?

    Binärdateien (z. B. Bilder) in Git-Repositorys 22
    1.  
      Grundsätzlich ja, aber mit Ausnahmen (z. B. zu große Dateien) (13) 59%
    2.  
      Klar! Warum denn auch nicht? (6) 27%
    3.  
      Eher nein, aber es gibt Ausnahmen (z. B. kleine Dateien oder bestimmte Formate) (2) 9%
    4.  
      Binärdateien haben in Git nichts zu suchen! (1) 5%
    Ich möchte hier mal folgendes Thema zur allgemeinen Diskussion stellen:

    Sollten Binärdateien, die zu einem Programmierprojekt gehören, dazu zählen insbesondere Grafiken, in ein Git-Repository geladen werden oder sollten diese an anderen Stellen (wenn ja, wo?) abgelegt werden? Also sollte Git nur für reine Textdateien bzw. sogar ganz explizit nur für Quellcode benutzt werden?

    Ich würde gerne eure Argumente hören (Pro und Contra), eure persönliche Meinung und v. a. wie ihr es tatsächlich handhabt.

    Wer sich nicht textlich beteiligen möchte, der mag sich vielleicht zumindest an der eingefügten Umfrage beteiligen. Gerne auch beides!

    Meine eigenen Argumente:

    Pro: Alles ist an einem Ort; man kann über das Klonen des Repositorys alles wiederherstellen; Releases sind einfacher zu erstellen; man hat eine Nachverfolgung (welche Datei wurde wann und von wem verändert)
    Contra: Das Repository wird aufgebläht (Server); beim Klonen werden auch alle alten Binärdateienversionen runtergeladen und man hat viele Daten; ein Vergleich mit Diff o. ä. ist (im Regelfall) nicht möglich

    Ich persönlich tendiere dazu, bestimmte Binärdateien ins Repository zu packen. Beispielsweise Favicons einer Website, das Logo einer (Web-) App, Webfonts usw.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Moin,

    ich habe abgestimmt für „Grundsätzlich ja.“

    Git kann Binärdateien verwalten, aber eben mit entsprechenden Einschränkungen bei Diffs und Merges. Kleinere Dateien wie Icons oder ähnliches sind absolut ok. Um Problemen wie das Aufblähen der Repo-Größe mit große Binärdateien zu begegnen gibt es Git-LFS. Dabei wird im Repo selbst nur eine kleine Textdatei mit einem Verweis ein einen File-Store abgelegt. Der Vorteil ist, dass das Repo eine handelbare Größe behält. Man braucht dann aber einen kompatiblen Server (du hattest ja neulich nach Gitea gefragt, damit geht das).
    Mit freundlichen Grüßen,
    Thunderbolt
    Sehe das ziemlich ähnlich, wenn es dazu gehört, kommt es mit in das Repository.

    Bleiben wir mal beim Beispiel Webseite, das Logo/Favicon/etc gehören einfach dazu und gewährleisten, das man zu seinem späteren Zeitpunkt einen definierten Stand wiederherstellen/prüfen kann. Wenn die Daten extern liegen, wäre das nicht möglich.

    Stichwort: Reproducible builds
    ich habe ebenfalls abgestimmt für „Grundsätzlich ja.“
    Zu einem Projekt gehören alle Dateien, die halt dazugehören, also auch Bilder.
    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!
    Ich habe auch mit "Grundsätzlich ja" gestimmt.
    Alles was zum Grundprojekt gehört und nicht individuell ist kommt mit ins Repo.
    Sobald spezifische Daten für eine spezifische Installtion dazu kommen ( test daten z.b. oder test bilder ) bleiben diese aussen vor.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    „Grundsätzlich ja“. Diese Woche erst wieder gemerkt als ich für drei neue Kollegen die PCs einrichten musste. Repository geklont und ab gehts.
    "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
    Ich bin zwar nur ein kleines Programmiererlicht, habe aber trotzdem abgestimmt und zwar mit 'Grundsätzlich ja'. Ausnahmen sollte man vielleicht bei sehr großen Bildern machen, vorallem wenn davon sehr viele im Projekt enthalten sind. In meinen Z80 Disassembler habe ich 612 Bilder drin, von einem Z80 Buch. Das sind 32MB. Können die ein Problem darstellen? Vor 10 Jahren bestimmt, aber heute sind doch alle Programmierer so schnell angebunden, da sollte es in der Regel kein großes Problem mehr darstellen.
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    Vielen Dank für die bisherigen Antworten und die Abstimmungen bei der Umfrage. Eigentlich etwas schade, dass sich noch keiner gegen Binärdateien in Git ausgesprochen hat, um mal Argumente der Gegenseite zu hören. Andererseits finde ich es natürlich gut, dass man meiner Meinung ist (ich bin auch auf der "Grundsätzlich ja"-Seite). ;)

    Ich lasse den Thread auf jeden Fall noch auf Unerledigt, da ich natürlich gerne noch weitere Meinungen höre, egal in welche Richtung diese gehen.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Wenn auf's git lediglich Textdateien sollten, hätte man anderweitige Formate längst unterbunden. Ich sehe auch kein Problem darin, große Binärdateien auf's git zu laden, schließlich wird das ja nicht bei jedem Push mitgesendet, sofern jeweils eine Binärdatei nicht verändert wird.

    Dein Contra macht insofern nur Sinn, wenn du deine eigenen Repositories, und damit deine eigenen git-Server verwaltest. Sehe aber jetzt keinen plausiblen Grund, warum man das tun sollte (mit Ausnahmen bei Regierungsprojekten, aufgrund der gegebenen Sensibilität der Daten).

    Ferner soll die Alternative was genau sein? Die Binärdateien auf einem anderen Server hosten? Neben den Sicherheitsrisiken, zusätzlicher Wartung et cetera, wird man so wahrscheinlich auch nicht wenige Entwickler abschrecken, am Projekt zu partizipieren, wenn die denn noch weitere Dateien, die für die Ausführung des Projekts nötig sind, auf anderen Servern nachladen müssten. Außerdem bieten gits nun mal die Möglichkeit, Änderungen - selbst in Binärdateien - sichtbar zu machen. Allein das spricht für nötige Binärdateien auf gits: Nachvollziehbarkeit.

    Eventuell problematisch werden schwer komprimierbare Dateien, oder häufig ändernde Binärdateien. Aber warum sollte man Binärdateien häufig ändern?

    Ansonsten: stackoverflow.com/questions/46…it-good-with-binary-files

    ...
    Und Gott alleine weiß alles am allerbesten und besser.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „φConst“ ()

    Zumindest hier im Forum scheint die Meinung ja relativ eindeutig zu sein. Ich bleibe also bei meinem bisherigen Vorgehen "Grundsätzlich ja". Danke an alle!
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

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