Branching a document in git

From FedoraProject

Revision as of 18:26, 6 September 2011 by Nathant (Talk | contribs)

Jump to: navigation, search

The Fedora Documentation Project maintains the XML source for most Fedora documentation in git repositories on Generally, each repo contains a "master" branch, in which corrections and updates are made, and a set of branches for various Fedora releases. The version of the XML in these branches is stable, and forms the basis for translations by the Fedora Localization Project. We do not generally make incremental changes to the XML in stable branches because to do so would break translations.

Sometime after the release of the Alpha version of a new version of Fedora, we create a new branch for that version, using the updated XML from the master branch and the most recent set of translations from the branch of a previous version of the book.

These instructions are for the leads (maintainers) of formal Fedora documentation.

Once you are sure that the documentation correctly describes the new version of Fedora and that it builds correctly on your system:


In the root directory of the checked-out document (the one that contains the publican.cfg file):

0.1 Change into the master branch

git checkout master

0.2 Make sure that your master branch is up to date:

git pull

0.3 Make sure that you have a local copy of the branch with the most recent translations:

git branch --track f13 origin/f13

0.4 Make sure that your Publican installation is the latest version

sudo yum update publican-fedora publican
Because of bug fixes, please make sure you are running the latest versions of Publican and Publican-fedora. The current versions are publican-2.5-1 and publican-fedora-2.0-0.


1. Create a new local branch. In the master branch, run:

git branch f21

2. Change into the new local branch:

git checkout f21

3. Push the new branch into the remote repository:

git push origin f21

4. switch to the branch with the most recent translations:

git checkout f13

5. copy all the directories for languages other than English (most named xx-YY, a few named xxx-YY or xx-Zzzz-YY) to a temporary location on your system. You should also copy the .tx directory, if there is one. Be careful not to copy any files, the US English directory en-US, the pot directory, or any directory that is not named with a language code except the .tx directory.

6. switch back to the f21 branch:

git checkout f21

7. copy the translations from the temporary directory that you made in step 4 into the document directory

8. update the document POT files:

publican update_pot

9. update the PO files for each language:

publican update_po --langs=all

10. check your changes into the repo:

git add .
git commit -m"branch for f21"
git push

11. File a bug report against l10n-requests to request that Transifex file submissions be disabled for the f13 branch and enabled for the new f21 branch. Make sure to mention the name of the document in your request.