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.
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
doc-base https://svn.php.net/repository/phpdoc/doc-base/trunk en https://svn.php.net/repository/phpdoc/en/trunk
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.
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://github.com/php/phpdoc-base.git git submodule add phpdoc-en/en git://github.com/php/phpdoc-en.git