Hi at all!!
Yesterday i had my Libre Software class of the Master course i’m finishing, we learned about source code repositories, type of them, main ones, history, principles, etc.
A source code repository is an application tool used for hold a control version about all source code from a software project, the repository have several tools or instructions for validate changes, get all source code to your local machine, update, view history logs, etc.
The first repository have been learned in this class has been CVS (GPL) wich has been widely used since 90’s to early 2000 when appeared Subversion (Apache License) and then mostly developers changed for it, both systems are based in mantain several versions of the project whit two basics operations, one for get the source code (checkout) and one for update the changes to the official version in the main repository (commit), subbversion also add the atomic operations.
Time after that, new repositories models appear such as Mercurial (GPLv2), Git (GPLv2) and Bazaar (GPL), these new forms to understand the source code repositories are based more or less in p2p and distributed systems, in the such way like as you, how a developer have got a complete copy of the source code in the repository so, you can have a new branch of the official project and merge when you or the comunity around this project decide for.
Well when i have more time im going to continue explain more about these repositories, and web repositories comunities also called forges.