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.