This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:git [2011/12/07 00:09]
frozenfire created
doc:git [2020/09/03 01:18] (current)
Line 3: Line 3:
 === Current Project Structure === === 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 == == Main Subsections ==
Line 8: Line 11:
   - [[|Modules]]   - [[|Modules]]
     * [[|Doc-En]]     * [[|Doc-En]]
-    * [[|Doc-All]] +    * //[[|Others]]//
-    * [[|*Others*]]+
 == Translations == == Translations ==
   - [[|Brazilian Portuguese]]   - [[|Brazilian Portuguese]]
   - [[|Chinese (simplified)]]   - [[|Chinese (simplified)]]
 +  - [[|English]]
   - [[|French]]   - [[|French]]
   - [[|German]]   - [[|German]]
Line 23: Line 26:
   - [[|Spanish]]   - [[|Spanish]]
   - [[|Turkish]]   - [[|Turkish]]
-  - [[|Other Inactive]]+  - //[[|Other Inactive]]// 
 +== Properties == 
 +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 
 +  en 
 +Each xml file in the repository contains a set of keywords which are automatically substituted when 
 +checked out. These allow certain terms to be automatically updated for each commit, rather than 
 +maintained manually. Importantly, the Revision keyword allows translations to track what version 
 +of the English translation their file is based upon. 
 +''svn:keywords Example'' 
 +  Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL 
 +=== 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 must 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. 
 +== Doc-Base == 
 +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 git:// phpdoc-en/doc-base 
 +  git submodule add git:// phpdoc-en/en 
 +== Attributes == 
 +Because Git does not support keywords in the same way that Subversion does, some changes may need to be 
 +made, or it may be necessary to create hackish dependencies in order to 
 +[[|maintain the current scheme]]. 
 +''RCS Keywords Example'' 
 +  git clone git:// 
 +  git init phpdoc-en 
 +  cat git-rcs-keywords/.gitconfig >> phpdoc-en/.git/config 
 +  echo '*.xml filter=rcs-keywords' >> phpdoc-en/.gitattributes 
 +  cp -R git-rcs-keywords/.git_filters phpdoc-en/
doc/git.1323216549.txt.gz · Last modified: 2017/09/22 13:28 (external edit)