Posters

From Chaos to Clarity: Automating history clean-up and mono-repo migration with git-filter-repo

Presented by

Shiva Gaire, Everest K C

Experience Level:

Some experience

Description

As software projects grow, managing many small repositories can become complex and messy. This is a problem faced by many engineering teams. Mono-repo can be a solution for it, as it simplifies dependency management, CI/CD pipelines, and collaborative development.
But migrating multiple old repositories into a single mono-repo is far from trivial. In this poster, we share our experience migrating multiple old repositories into a single mono-repo using git-filter-repo, a modern Git tool written in Python. It allows writing custom Python scripts to rewrite commit histories, rename files, and clean up unwanted data. During the migration, we used Python callbacks to remove large binaries, obsolete files, and legacy folders. Instead of just deleting them, each removed file was replaced by a small text file containing its original name, folder path, new location, and SHA-256 checksum. This kept the history traceable while keeping the repository lightweight.

Search