The I2P sourcecode was kept in a CVS repository. Nowadays it is kept in a Monotone repository. For those who aren't very familiar with CVS, there is a fantastic book on the subject (developers only need to deal with the first chapter - "An Overview of CVS", as subsequent chapters go into some nasty details very few ever need to touch).

Unix CVS

cvs -d:pserver:anoncvs@cvs.i2p.net:/cvsroot login
Password: anoncvs
cvs -d:pserver:anoncvs@cvs.i2p.net:/cvsroot co i2p

WinCVS

WinCVS CVSRoot (login then checkout):
anoncvs@cvs.i2p.net:/cvsroot
Password: anoncvs

CVSWeb

I2P CVSWeb (w/ nice diffs)

CVS history

Commits are sent to the CVS mailinglist

Humorous quote from WinCVS: "Did you know... Never experiment with new CVS commands on your working repository. Create a sample module instead."