Apache Commons logo


This section talks about two version control systems: Git and Subversion. For the most part, all current Apache Commons Components use Git. Some older inactive components are still in Subversion.

Download the Source

Most users of the source code probably don't need to have day to day access to the source code as it changes. For these users we provide easy-to-unpack source code downloads. See the "Releases" link on the Commons page.

Access the Version Control System (quick info)

Enter the following URL into a web browser to browse the latest source code, or pass that same URL to a git client application to check the code out to your local machine, after replacing {component-name} with the appropriate value, like lang, io, or text.


Alternatively, enter the following URL into a web browser to browse the latest source code including history and commit information.


Access the Version Control System (details)

You can get the URL for each component's git repository from that component's site.

Some parts of Commons are still in Subversion, namely, the "sandbox". The URLs for direct access to the sandbox section of the Subversion repository are:

The "proper" subdirectory leads to the old code for official commons components, before conversion to git. The "sandbox" subdirectory leads to the code for experimental commons components.

Subdirectories "trunks-proper" and "trunks-sandbox" are special directories that should be ignored by most users; they have Subversion "external attributes" associated with them so that when checking out those directories using a subversion client application, the directory created actually contains the "trunk" directory of every commons or sandbox project. This is useful for special purposes such as building the commons website. Most users can ignore these directories and access the trunk of a project via the "proper" or "sandbox" directory.

You can directly browse the pre-git conversion version of ASF the code in Subversion by entering one of the above URLs into a standard web browser. Once you have found a directory of interest, you can pass the same URL to a subversion client in order to check out the files locally.

As an alternative, you can browse the repository (including access to file history) via one of the links below. Once you have found a file or directory of interest, replace the url prefix "http://svn.apache.org/viewvc" with the appropriate subversion root url (see above).

Important! When checking out a directory in subversion, ensure that you do not check out a directory that has "tags" and "branches" subdirectories, as this will result in getting a complete copy of the code for every branch and tag ever made. If you want the latest code, you generally want the directory {component-name}/trunk, though you should check the project directory structure first via one of the methods listed above, as different projects may use different internal directory structures. For example, some projects which support multiple versions of Java may use {component-name}/branches/{branch-name} as well as {component-name}/trunk.

Important! At the current time, selecting by date in subversion within the ASF repository isn't reliable. The reason is that when converting a date to a revision number, subversion assumes that revision N has an earlier date than revision N+M, and that it can therefore perform a binary search on revision numbers to locate one with the required date. However CVS imports of data that retain the original date information from CVS break this assumption. And unfortunately because revisions are repository-wide information, this affects date-based searches even in directories unrelated to the ones that CVS stuff was imported into. So while dates are reported correctly in "svn log" output, only revision numbers should be used with the -r option. See issue #752 in the subversion issue tracker at tigris.org.

For more information on connecting to the ASF Subversion repository, see the ASF version control page.

About Git

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. More information about Git can be found at the Git site.

About Subversion

Subversion is an open-source version control system designed to be "a better CVS". More information about subversion can be found at the Apache Subversion site.