This is an old revision of the document!

PHP Documentation Project Transition from Subversion to Git

The PHP Documentation project and translations will be incrementally moved from Subversion to Git.

Current Project Structure

The Subversion repository for the PHP Documentation project is currently stored in the main PHP repository under phpdoc. It is divided into two main subsections, and a number of active and inactive translations.

Main Subsections

Modules are achieved using the Subversion property known as svn:externals. This prop allows external Subversion paths to be linked into the project by URL.

doc-en Module Example


Proposed Git Structure

Because of a few technical limitations of the Git version control system, some major structural changes are required for the transition to Git from Subversion. First and foremost, Git does not support partial check-outs of a subsection of the repository. Because of this, the project much be split into several independent repositories, and “wrapper” repositories whose function is to define a set of submodules that make up each translation's project.


Since the doc-base path of the PHP Documentation project is a global dependency for all builds, it makes up its own major project, which all wrapper repositories will include as a submodule.

"Wrapper" Repositories

Each wrapper repository will include doc-base and its respective translation project as submodules.

doc-en Wrapper Repository Example

git init phpdoc-en
git submodule add phpdoc-en/doc-base git://
git submodule add phpdoc-en/en git://
doc/git.1323219854.txt.gz · Last modified: 2017/09/22 13:28 (external edit)