Metagit: decentralised metadata management with Git

Mark Scott, Steven J. Johnston, Simon J. Cox

Research output: Contribution to journalArticlepeer-review


Version control systems are used widely for tracking edits to data files, especially when working in teams with simultaneous editors. They track who made edits and when, and provide tools for comparing changes made and for resolving conflicts when the same file is edited by two people. Attaching metadata to files which stays with the data and tracking changes can be difficult if the file format does not support it. In this paper we present a new and innovative architecture for recording key-value metadata for objects in a revision control system, specifically Git. The utility and maturity of version control system tools make them a good candidate for a metadata store. We take advantage of Git's data store to permit the values to be blobs, opening up other possibilities such as defining thumbnails for files and folders. Propagation rules are presented, detailing when metadata follows a file after modifications to the repository. A prototype version of a tool is presented and the usefulness of the architecture is demonstrated with a number of examples. Adapting the approach to other systems such as Mercurial and Subversion is also discussed.
Original languageEnglish
Pages (from-to)78-92
Number of pages15
JournalInformation Systems
Early online date1 Nov 2016
Publication statusPublished - Apr 2017


Dive into the research topics of 'Metagit: decentralised metadata management with Git'. Together they form a unique fingerprint.

Cite this