Physicists have often the need to store ROOT files inside a git repository, mostly to be able to have them versioned and for the convenience of having them shipped together with the source.
However given the fact that git treats files as an atomic units and due to the common “compressed blob” look ROOT files, this can result in extremely large git repositories because git is unable to further aggregate and compress them, even if their uncompressed versions differ very little one from the other.
The aim of the project is to provide a tool to convert ROOT files in a form
which is suitable for being stored in a git repository using the object store
model of git as a way to store separate, uncompressed
TKeys, ROOT smallest
storage unit inside a file. Under the assumption people tend to store in a git
repository ROOT files which have only a small fraction of the
significantly changing, this should allow git to efficiently group and compress
similar entries, possibly resulting in much more compact repositories than the
one resulting from the naive file by file approach.
The project is divided in four parts:
A natural extension of this work, if the student has a Windows machine available, is to study the interplay with Microsoft’s GVFS.