Was kommt ins Repository und was nicht?

vilbel

Lt. Junior Grade
Registriert
Mai 2014
Beiträge
296
Guten Abend,
ich bin gerade dabei mir ein Repository einzurichten. Dabei stellte ich mir die Frage was genau ich für das erste Commit auswählen soll. Der Ordner /bin/ auf keinen Fall, das ist mir klar. Aber wie sieht es mit automatisch angelegten Konfigurationsdateien von Eclipse aus wie z. B. .project und .classpath? Das Gleiche frage ich mich für den versteckten Ordner .settings.

Bin für jede Antwort dankbar. Und bitte schreibt auch den Grund für ein Ja/Nein dazu.
 
Sourcen und Ressourcen werden eingecheckt.
Eclipse Settings, logs, generierte Dateien, Testergebnisse, usw. nicht.
 
Außer die Datei sind für die Lauffähigkeit deines Programms notwendig ;)
 
Bei repos die nur ich nutze checke ich mittlerweile auch die ganzen Projekt-Dateien der IDE mit ein. Nervt einfach nur das ganze Projekt auf einem anderen Rechner wieder einrichten zu müssen (vor allem bei Android-Projekten). Die "bin"-Ordner schließe ich aus, wobei die bin-Verzeichnisse auf meiner Arbeitsstelle auch miteingecheckt werden (spart build-Zeit).

Bei repos, die von mehreren Leuten und unterschiedlichen IDEs verwendet werden, checke ich auch nur sourcen ein, weil was will jemand der IntelliJ nutzt mit den Eclipse-Files?
 
wahli schrieb:
Sourcen und Ressourcen werden eingecheckt.
Eclipse Settings, logs, generierte Dateien, Testergebnisse, usw. nicht.

Ergänzend dazu: Die Dateien sollten auch keine absoluten Pfade enthalten.
 
vilbel schrieb:
Aber wie sieht es mit automatisch angelegten Konfigurationsdateien von Eclipse aus wie z. B. .project und .classpath? Das Gleiche frage ich mich für den versteckten Ordner .settings.
Sowas gehört nicht ins Repo. Wenn du das Projekt für immer allein machst, kannst du das gerne tun. Arbeitest du mit mehreren Personen, werden dir alle Prügel androhen, weil du immer und immer wieder ihre Einstellungen überschreibst.
 
Yuuri schrieb:
Sowas gehört nicht ins Repo. Wenn du das Projekt für immer allein machst, kannst du das gerne tun. Arbeitest du mit mehreren Personen, werden dir alle Prügel androhen, weil du immer und immer wieder ihre Einstellungen überschreibst.

Naja, die überschreiben es ja auch immer wieder ;-)

Zuhause kann man ja fast alles einchecken, da ist es egal, weil niemand beeinflusst wird. Compilierte Dateien gehören aber nicht rein. Die verschwenden nur Platz.
Ergänzung ()

Faust2011 schrieb:
Ergänzend dazu: Die Dateien sollten auch keine absoluten Pfade enthalten.

Das ist klar.
Es gibt verschiedene Ansätze, wie man umgebungsspezifische Daten managed. Z. B. kann pro Environment eine eigene Property-Datei existieren. Evtl. geht es auch über die Datenbank über eine Konfigurationstabelle. Oder über Startparameter beim Starten der Applikation. Oder über JNDI. Oder oder oder...

Noch eine kleine Ergänzung:
Wird Java mit Maven verwendet, dann müssen auch die build profiles (alle pom.xml) eingecheckt werden. Bei anderen Buildsystemen entsprechend andere Dateien.
 
Zuletzt bearbeitet:
Danke für eure Antworten. Intuitiv habe ich mir schon gedacht, dass das ganze Zeug im Repo nichts zu suchen hat. Aber jetzt habe ich Gewissheit.
 
Faustregel: Alles was man mithilfe von anderen Dateien aus dem Repo erzeugen kann, sowie das, was man zum Erzeugen/Konfigurieren/Warten des finales Produktes nicht benötigt, gehört ausgeschlossen.

Ein Repo speichert nur entsprechend die Änderungen zwischen den Versionen. Alle Dinge bei denen sich nicht immer nur ein kleiner Teil ändert verbrauchen nur unnötig Speicherplatz (wie Bilder, ausführbare - oder tmp Dateien).
Würde ich auf Arbeit so etwas wie das bin-Verzeichnis mit Einchecken um compile-Zeit zu sparen, würde ich ja sowas von eine auf den Deckel bekommen.
 
Source und Resource kommt in die Repo.
Keine von deiner IDE generierten Sachen.

Man kann sich auf ein grosses .gitignore einigen wo dann alles von den anderen IDE's ignoriert wird.

Ueber generierten Code kann man sich streiten ob man den als source oder generierbare resource sieht. Wenn es zweiteres waere, dann wuerde ich es nicht in die Repo laden.
 
Ich finde folgende Website (zumindest als Start bei einem frischen Repo) noch nuetzlich:
https://www.gitignore.io/
Dort kannst du dir passend eine gitignore Datei zusammen stellen.
 
Sehr schöne Seite, danke für den Link. Erstmals bookmarken.
 
Zurück
Oben