Taking Git to the next level

One To Watch: Codeq, Git repositories in Datomic


A new tool allows repositories to be imported into Datomic databases divided up into semantic segments for analysis.

Git is
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

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

For more information about Datomic, check out the video below of
Rich Hickey’s great JAXconf session, ‘Deconstructing the

no iframes?



All Posts by ElliotBentleyandChrisMayer

comments powered by Disqus