Size Does Matter – Große Repos in Git

Wenn ein Projekt stark wächst oder bereits groß ist, steht die Entscheidung an, ob es in viele kleine Repos aufgeteilt oder in ein großes Repo abgelegt werden soll. Das Arbeiten mit kleinen Repos ist normalerweise unproblematisch und gut beschrieben. Der Monorepo-Ansatz bietet allerdings auch Vorteile, so sind modulübergreifende Branches und Commits möglich. Dadurch werden globale Refactorings, beispielsweise gravierende Änderungen der API, einfach möglich.

Allerdings gibt es neue Herausforderungen, wenn ein Repo größer wird und viele Entwickler gleichzeitig daran arbeiten wollen. Viele und große Dateien blähen das Repository auf und machen das Arbeiten zäh. Viele Tags und Branches werden irgendwann sehr unübersichtlich.

Git bietet jede Menge Tools und Optionen, um hier zu unterstützen. Viele davon sind jedoch kaum bekannt. Wir geben einen Überblick und empfehlen Tools und Vorgehensweisen, mit denen Sie die Herausforderungen großer Repos angehen können.

Vorkenntnisse

* Der Vortrag ist an Teilnehmer gerichtet, die bereits einige Erfahrung mit Git gesammelt haben.

Lernziele

* Tools, Optionen und Vorgehensweisen kennenlernen, die beim Umgang mit großen Git-Repos helfen – zum Beispiel shallow clones, sparse checkouts, reference clones, lfs, fsmonitor-watchman, filter-branch und bfg.

Speaker

 

René Preißel
René Preißel arbeitet als selbstständiger Softwarearchitekt, Entwickler und Trainer. Seine Schwerpunkte liegen im Bereich Softwarearchitektur, Java-Technologien und Konfigurationsmanagement.

Bjørn Stachmann
Bjørn Stachmann arbeitet als Softwarearchitekt bei OTTO im Projekt BRAIN daran mit, eine BI-Plattform zu schaffen, die es ermöglicht, OTTO zur Data-driven Company zu machen. Seine Schwerpunkte dabei sind Hadoop, insbesondere HBase, Java-Entwicklung und Git.

CLC-Newsletter

Sie möchten über die Continuous Lifecycle und die ContainerConf auf dem Laufenden gehalten werden?

 

Anmelden