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
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.