Recreating Content

When the algorithms in compare-locales get updated, it might be necessary to explicitly update the current state of the gecko-strings repository.

This is also a good way to drop branches or projects, and similar configuration changes. Adding a new branch should work without this step.

The force cli tool is helpful in these cases. This tool creates the content for one source repository for all branches in the configuration initial.cli._config, for the revisions from the last conversion. As such it should only produce differences for changing configurations and the content generation toolchain. As it doesn’t know about what changed, or if, it doesn’t remove content nor commits to VCS. Depending on the expected results, one may need to remove files in the target repository before running the tool.

Note

This tool is a blunt knife, handle with care.

Example:

python -m initial.cli.force ~/src/mozilla-central ../output
python -m initial.cli.force ~/src/comm-central ../output

You want to commit the results in the target repository.

To create good commit messages, it’s recommended to have the first line to describe the change, and to ammend the commit message with the meta data associated with the state we converted. You find the right data in the target repository with either

hg log -r 'limit(reverse(desc("mozilla-central")))' -v|grep X-C|sed -e's/-Converted//g'

or

hg log -r 'limit(reverse(desc("comm-central")))' -v|grep X-C|sed -e's/-Converted//g'

You want to create separate commits for each repository.

Obviously, you want to rigorously review the changes, and the next few future updates.

Updating compare-locales

This should not change the set of files, nor the created project config files, so the above steps are all you need.

Dropping Projects

Before recreating the content, remove all affected project config files, and target localization files. You can be generous here, as the force command will recreate the files that are supposed to still be there.

Dropping Branches

Before recreating the content, remove all target translation files. When copying over the meta data from existing meta data, only copy those repositories and revisions that remain active.