Reproducible Git Bundles
baecher.dev
baecher.dev
So no the git 2.38 issue should not be a problem for bundles even if the format changes in the future.
Which is what the linked article discovered. Threading is a trivial way to discover this, but there's other ways PACK contents might differ across versions.
Actually, any snapshot of a Git repository is consistent (due to its CAS nature), minus the index which doesn't really need backup anyway.
> The naive solution of simply backing up the entire file-system tree is clearly not desirable since that would clutter the backup with useless build artifacts.
Build artifacts can be filtered out with tar --exclude patterns, but this is a language-dependent set that will require curation.
Just ignore the files in .gitignore and backup the entire file-system tree.
Don’t be clever. This is a backup of source code that took many hours/days/weeks of effort to create. Since git is mainly source code, it is not that big of space hog.
Disk space is cheap. Time is not.
At the same time, this train of though is why VSCode dumps 8 GiB into the ~/.config directory, causing not only a lot longer time to wait for any backup to finish, but also incurring time in getting more and more backup disks, figuring out where to physically store them, etc. Better spend more time up front getting the storage right, and save space and time for those that use it later.
`git rm -r --cached .`
> One solution is to create a fresh clone (with --mirror), but that will typically consist of many small files which isn't ideal for backups, either.
this is precisely what tar(1) was made for..