doc:git

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:git [2011/12/07 00:20] – Formatting frozenfiredoc:git [2017/09/22 13:28] – external edit 127.0.0.1
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 phpdoc-en/doc-base git://github.com/php/phpdoc-base.git
 +  git submodule add phpdoc-en/en git://github.com/php/phpdoc-en.git
 +
 +== 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