Branching a document in git

The Fedora Documentation Project maintains the XML source for most Fedora documentation in git repositories on fedorahosted.org. 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:

Preparation
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 f origin/f

0.4 Make sure that your Publican installation is the latest version


 * sudo yum update publican-fedora publican

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


 * git branch f

2. Change into the new local branch:


 * git checkout f

3. Push the new branch into the remote repository:


 * git push origin f

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


 * git checkout f

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 f branch:


 * git checkout f

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 f"
 * git push

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

12. If the document has never been set up to use Transifex.net for translations, follow the steps described in Setting up a document with Transifex to make your document available to translators.