translations to Git.
@itemize
-@item Translation changes matching master branch are preferably made on
-@code{translation} branch; they may be pushed directly to
-@code{master} only if they do not break compilation of LilyPond and
-its documentation, and in this case they should be pushed to
-@code{translation} too. Similarly, changes matching
+@item Translation work is made on
+@code{translation} branch. This branch is merged on
+@code{staging} once a week, approximately. Then,
+@code{master} branch is merged on
+@code{translation}, where the check-translation script (see
+@ref{Check state of translation}) shows changes in English docs which
+should be translated, and the cycle starts again.
+
+@item Translations may be pushed directly to
+@code{staging} only if they do not break compilation of LilyPond and
+its documentation. Those changes could be pushed to
+@code{translation} too, or alternatively translators could wait until
+they come from
+@code{master} the next time it is merged on
+@code{translation}. Similarly, changes matching
@code{stable/X.Y} are preferably made on
-@code{lilypond/X.Ytranslation}.
+@code{X.Ytranslation}.
@item @code{translation} Git branch may be merged into
-master only if LilyPond (@command{make all}) and documentation
-(@command{make doc}) compile successfully.
-
-@item @code{master} Git branch may be merged into
-@code{translation} whenever @command{make} and @command{make
-doc} are successful (in order to ease documentation compilation by
-translators), or when significant changes had been made in
-documentation in English in master branch.
+@code{staging} branch only if LilyPond (@command{make all}) and
+documentation (@command{make doc}) compile successfully.
+
+@item @command{make} and @command{make doc} are usually successful in
+@code{master} Git branch because those tests should have already
+succeeded in
+@code{staging} branch before merging.
+@code{master} branch may be merged into
+@code{translation} when significant changes had been made in
+documentation in English in
+@code{master} branch.
@item General maintenance may be done by anybody who knows what he does
in documentation in all languages, without informing translators
first. General maintenance include simple text substitutions
(e.g. automated by sed), compilation fixes, updating Texinfo or
lilypond-book commands, updating macros, updating ly code, fixing
-cross-references, and operations described in @ref{Maintaining
-without updating translations}.
+cross-references, and operations described in
+@ref{Maintaining without updating translations}.
@end itemize
Branches are nerve-wracking until you get used to them. You can
save your hard work as individual @file{.patch} files. Be sure to
-commit your chages first.
+commit your changes first.
@example
git commit -a
allows translators to work without needing to worry about
compilation problems. Periodically, the Translation Meister
(after verifying that it doesn't break compilation), will
-@emph{merge} this branch back into @code{master} to incorporate
+@emph{merge} this branch into @code{staging} to incorporate
recent translations. Similarly, the @code{master} branch is
usually merged into the @code{translation} branch after
significant changes to the English documentation. See
If any conflict happens, see @ref{Resolving conflicts}.
There are common usage cases for merging: as a translator, you
-will often want to merge @code{master} into
+will often want the Translations meister to merge @code{master} into
@code{translation}; on the other hand, the Translations
meister wants to merge @code{translation} into
-@code{master} whenever he has checked that
+@code{staging} whenever he has checked that
@code{translation} builds successfully.
git cl upload origin/master
@end example
+@c Mention staging here?
If you have git push ability, make sure that you @emph{remove}
your patch (with @command{git rebase} or @command{git reset})
before pushing other stuff.