doc:git

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:git [2011/12/07 00:20]
frozenfire Formatting
doc:git [2020/09/03 01:18]
avenger
Line 3: Line 3:
  
 === Current Project Structure === === Current Project Structure ===
 +The Subversion repository for the PHP Documentation project is currently stored in the
 +[[https://svn.php.net/viewvc/|main PHP repository]] under [[https://svn.php.net/viewvc/phpdoc/|phpdoc]].
 +It is divided into two main subsections, and a number of active and inactive translations.
  
 == Main Subsections == == Main Subsections ==
Line 8: Line 11:
   - [[https://svn.php.net/viewvc/phpdoc/modules/|Modules]]   - [[https://svn.php.net/viewvc/phpdoc/modules/|Modules]]
     * [[https://svn.php.net/viewvc/phpdoc/modules/doc-en/|Doc-En]]     * [[https://svn.php.net/viewvc/phpdoc/modules/doc-en/|Doc-En]]
-        svn:externals 
-        doc-base https://svn.php.net/repository/phpdoc/doc-base/trunk 
-        en https://svn.php.net/repository/phpdoc/en/trunk 
- 
     * //[[https://svn.php.net/viewvc/phpdoc/modules/|Others]]//     * //[[https://svn.php.net/viewvc/phpdoc/modules/|Others]]//
  
Line 17: Line 16:
   - [[https://svn.php.net/viewvc/phpdoc/pt_BR/|Brazilian Portuguese]]   - [[https://svn.php.net/viewvc/phpdoc/pt_BR/|Brazilian Portuguese]]
   - [[https://svn.php.net/viewvc/phpdoc/zh/|Chinese (simplified)]]   - [[https://svn.php.net/viewvc/phpdoc/zh/|Chinese (simplified)]]
 +  - [[https://svn.php.net/viewvc/phpdoc/en/|English]]
   - [[https://svn.php.net/viewvc/phpdoc/fr/|French]]   - [[https://svn.php.net/viewvc/phpdoc/fr/|French]]
   - [[https://svn.php.net/viewvc/phpdoc/de/|German]]   - [[https://svn.php.net/viewvc/phpdoc/de/|German]]
Line 28: Line 28:
   - //[[https://svn.php.net/viewvc/phpdoc/|Other Inactive]]//   - //[[https://svn.php.net/viewvc/phpdoc/|Other Inactive]]//
  
 +== Properties ==
 +
 +**svn:externals**
 +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
 +
 +**svn:keywords**
 +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://github.com/php/doc-base.git phpdoc-en/doc-base
 +  git submodule add git://github.com/php/doc-en.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
 +[[https://github.com/turon/git-rcs-keywords|maintain the current scheme]].
 +
 +''RCS Keywords Example''
 +  git clone git://github.com/turon/git-rcs-keywords.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.txt · Last modified: 2020/09/03 01:18 by avenger