[[!comment format=mdwn
 username="joey"
 subject="""where to start reading the source code"""
 date="2015-01-05T20:58:50Z"
 content="""
@thnetos, great question!

Annex.hs is a key starting place, as it defines git-annex's main monad.
If you like learning code bases bottom-up, Types/* has files for
the main data types used in git-annex, such as Key and UUID and Remote and
GitConfig.

Command/* gets you the implementation of any particular git-annex command
you are interested in. Or Remote/* for any particular special remote.

I recommend running "make tags" and then your editor should be able to use
the tags file to bounce around in the source code.
"""]]