Source Code Access

Announcement 07/16/2018: The ICU source code repository has been migrated from Subversion to Git, and is now hosted on GitHub at the following location:
Please check this page later for more detailed instructions on how to clone and work with the new git repository.

Announcement 07/01/2018: The ICU Subversion repository is in a read-only state. The information below is not correct and may return a stale copy of the ICU code. Please check this page later for updated instructions.

Announcement 10/28/2016: The ICU Subversion repository has been reorganized to combine icu, icu4j and tools in a common trunk. This permits committing changes to icu4c and icu4j together, and 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

Web views of the 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.

Repository Root

These are the addresses of the icu Subversion repsitory:

For anonymous, read-only access

For read/write access, (icu committers with established accounts only)

The repository locations shown in the tables below are relative to these base locations. 

Repository Directory Structure

 trunk/       Head of the development versions of icu4c, icu4j and tools
 trunk/icu4c   icu4c head
 trunk/icu4j icu4j head
 trunk/tools tools head
 tags/ Tagged versions of icu. Each tagged release includes icu4c, icu4j and tools.
 branches/ Development branches.
 branches/maint/ Maintenance branches for released versions of ICU. 
 branches/user/... Private development 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 these directories is not guaranteed to function or even compile.

Other subversion top level directories. Contain ancillary data, not directly part of the ICU library.

 data  Additional data. Charsets, time zones, performance data, etc.
 icuapps  ICU sample and demo apps
 icuhtml  Various html documents associated with ICU.
 icu4jni  [Obsolete] a project to allow Java applications to use ICU4C via JNI.

Legacy Directories. 

ICU version 58 and earlier used a different svn structure, with separate top level directories for ICU4C, ICU4J and the tools. 
While these directories still exist in the repository, they are no longer actively in use.
The current corresponding directories are nested under trunk/, tags/ and branches/, as describe above.

 icu  [obsolete] ICU4C top level directory
 icu4j  [obsolete] ICU4J top level directory
 tools  [obsolete] ICU tools top level directory.

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.

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, ICU 58.1 is being retrieved. Both ICU4C and ICU4J will be retrieved.

svn export icu

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)