Taking Git to the next level
One To Watch: Codeq, Git repositories in Datomic
great, but sometimes its reductionist approach to tracking changes
to code can be limiting. To solve this problem, Datomic have
created codeq (pronounced
“co-deck”), an application for importing Git repositories into a
Datomic database for further analysis.
We’ve been monitoring the progress of Datomic, the latest project from Clojure creator Rich Hickey, for the past year or so. Billed as a new distributed database system “based on facts”, the radical aspect of Datomic is the splitting of transactions, processing and storage into three distinct parts, as opposed to RDBMS’s unified approach.
In some ways, codeq is a tech demo for Datomic - but a pretty impressive one. Once imported, Git repositories are analysed and divided up into semantic segments named ‘codeqs’, which then allow changes to be tracked at the program unit level, rather than line/code level.
The resulting database allows for programs and libraries to be queried declaratively, and by importing multiple git repositories can allow queries across repos. Hickey says that the database could even “serve as infrastructure for editors, IDEs, code browsing, analysis and documentation tools”, although obviously this is some time off.
Codeq is open source (you can get it yourself on GitHub), but to run it you’ll need to download the free edition of Datomic.
For more information about Datomic, check out the video below of Rich Hickey’s great JAXconf session, ‘Deconstructing the Database’.