Source Code Access

Announcement 10/26/2016: The ICU Subversion repository is being reorganized to combine icu, icu4j and tools in a common trunk. This will permit tagging or branching ICU as a whole, rather than in three separate parts. For details on the before and after directory structure, see this document

See also the Tips (for developers) subpage.

Source Code Repository Simple top level view of the ICU repository for use with subversion. Browse the repository with Trac to shows different revisions, compare revisions, annotated source and links to ticket descriptions.

Specific URLs to use in your subversion client. If you want a specific version of ICU, you should use one of the tagged releases (see below). Auxilliary data items- not needed for normal ICU builds ICU for C/C++ ICU for Java ICU for Java Native Interface Samples and Demos Used by the ICU development team for documentation work.
(Please use Docs & Papers to access ICU documentation.) Other tools used by the ICU development team. Not required for building ICU.

Subversion Client Information Subversion main web site. Subversion is used to access the ICU repository.
SvnTips Subversion tips from the ICU Wiki for ICU developers (not users).
Subversion Setup for ICU Subversion client configuration for developer access to the ICU Repository.

Tags, Branches and Trunks

Note: for details on how tags, branches, and trunks work, consult the Subversion documentation.

Under each of the above URLs, such as, there are three directories: branches, tags, and trunk. We will use the ICU (for C) directory as an example, but the same pattern applies to, and other subdirectories. For clarity, the has been omitted.

/repos/icu/icu/tags/ This directory contains a subdirectory for each "tagged" set of sources. For example, release-3-6 contains the tagged source for the final release 3.6, and release-3-4-1 contains release 3.4.1. Any tag containing other than "release" and numbers, is NOT a final release, and is not guaranteed to function or even compile. For example, release-3-0-d02 is a developmental release.
/repos/icu/icu/branches/ Branches are created by the ICU development team for temporary development work along an alternate code path. They may be created or deleted at any time. Code from this directory is not guaranteed to function or even compile. 
/repos/icu/icu/trunk/ The Trunk contains the latest code along the main line of development. Code from this directory is not guaranteed to function or even compile.
Check out this directory to obtain the latest developmental code. See "Build Status" for the status of the trunk.

Example of Retrieving a Specific Version of ICU

The following is a command line example of retrieving a specific version of ICU. In this case, ICU4C 3.6 and ICU4J 3.6 are being retrieved.

svn export icu
svn export icu4j

A Bit of History

The ICU project moved to using a Subversion source code repository and a Trac bug database on Nov 30, 2006. These replace our original CVS source code repository and Jitterbug bug data base. All history from the older systems has been migrated into the new, so there should normally be no need to refer back to Jitterbug or CVS.

Legal Notice: Time Zone Database

Subpages (1): Tips (for developers)