L10n:Migration: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 21: Line 21:
             hg -R $CLONE pull -u -r default
             hg -R $CLONE pull -u -r default
         else
         else
             hg clone -r default ssh://hg.mozilla.org/releases/l10n/mozilla-$channel/$loc $CLONE
             hg clone -r default https://hg.mozilla.org/releases/l10n/mozilla-$channel/$loc $CLONE
         fi
         fi
     done
     done
Line 27: Line 27:
</nowiki></pre>
</nowiki></pre>


== Merge ==
Then, enable Axel's merge helper extension to hg:


First, enable Axel's merge helper extension to hg:
   hg clone https://hg.mozilla.org/users/axel_mozilla.com/branch-l10n/ ~/src/branch-l10n
 
   hg clone http://hg.mozilla.org/users/axel_mozilla.com/branch-l10n/ ~/src/branch-l10n
    
    
Edit your ~/.hgrc accordingly:
Edit your ~/.hgrc accordingly:
Line 43: Line 41:
   hg help no-op-merge
   hg help no-op-merge


If it shows the help screen, you can proceed with the merge
There's also a test-suite in branch-l10n, which you can run to verify your version of mercurial works.
 
    cd ~/src/branch-l10n/
    python test.py
 
If the extension works, you can proceed with the merge


<pre style="overflow-x:scroll">cd releases/
== Merge ==
 
Have LOCS set. Also, make sure ssh works for hg, we're pulling over https to speed things up.
for loc in `cat mozilla-*a/browser/locales/shipped-locales|awk '{print $1;}'|sort|uniq|grep -v en-US`; do hg -R l10n/mozilla-beta/$loc no-op-merge -m"Migrating aurora to beta for Firefox XXX" $PWD/l10n/mozilla-aurora/$loc; done
 
</pre>
The actual merge wants to happen closely to/after the en-US merge and its push to beta.


== Push ==
First, visit the l10n dashboard, and migrate the database. Adjust the time to just before the push to beta of en-US. Or either, if aurora at one point was pushed first. The page is https://l10n.mozilla.org/shipping/release/. Also, on that page, switch off `fallback` for Lightning.


Once the source migration is complete, push the merged repos back to h.m.o.


   cd releases/
<pre style="overflow-x:scroll">cd releases/l10n
 
for loc in $LOCS; do
  hg -R mozilla-beta/$loc pull -u -r default
  hg -R mozilla-aurora/$loc pull -u -r default
  hg -R mozilla-beta/$loc no-op-merge -m"Migrating aurora to beta for Firefox XXX" $PWD/mozilla-aurora/$loc mozilla-beta/$loc
  hg push -R mozilla-beta/$loc -r default ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/$loc
   hg push -R mozilla-beta/$loc -r default ssh://hg.mozilla.org/releases/l10n/mozilla-beta/$loc
done
</pre>


  for loc in `ls -1`; do hg -R $loc push -f; done
This goes through all locales, does a final pull, does the no-op-merge, and pushes to aurora, and then beta. That way, you minimize the time when commits can create heads.

Revision as of 10:04, 9 May 2015

Preparations

 mkdir releases && cd releases  
 mkdir -p l10n/mozilla-aurora
 mkdir -p l10n/mozilla-beta
 
 export LOCS=`wget -qO- 'https://hg.mozilla.org/releases/l10n/mozilla-beta/?style=raw' | grep -v x-testing | awk -F/ '{print $5;}'`

Put this script (upclones.sh) in your $PATH:

#!/bin/bash
 
HERE=`pwd`

for channel in aurora beta; do
    for loc in $LOCS; do  

        CLONE="$HERE/mozilla-$channel/$loc"

        if [[ -d $CLONE/.hg ]]; then
            hg -R $CLONE pull -u -r default
        else
            hg clone -r default https://hg.mozilla.org/releases/l10n/mozilla-$channel/$loc $CLONE
        fi
    done
done

Then, enable Axel's merge helper extension to hg:

 hg clone https://hg.mozilla.org/users/axel_mozilla.com/branch-l10n/ ~/src/branch-l10n
 

Edit your ~/.hgrc accordingly:

 [extensions]
 ...
 merge-l10n = ~/src/branch-l10n/merge_l10n.py

Try it out with:

 hg help no-op-merge

There's also a test-suite in branch-l10n, which you can run to verify your version of mercurial works.

   cd ~/src/branch-l10n/
   python test.py

If the extension works, you can proceed with the merge

Merge

Have LOCS set. Also, make sure ssh works for hg, we're pulling over https to speed things up.

The actual merge wants to happen closely to/after the en-US merge and its push to beta.

First, visit the l10n dashboard, and migrate the database. Adjust the time to just before the push to beta of en-US. Or either, if aurora at one point was pushed first. The page is https://l10n.mozilla.org/shipping/release/. Also, on that page, switch off `fallback` for Lightning.


cd releases/l10n
  
for loc in $LOCS; do
  hg -R mozilla-beta/$loc pull -u -r default
  hg -R mozilla-aurora/$loc pull -u -r default
  hg -R mozilla-beta/$loc no-op-merge -m"Migrating aurora to beta for Firefox XXX" $PWD/mozilla-aurora/$loc mozilla-beta/$loc
  hg push -R mozilla-beta/$loc -r default ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/$loc
  hg push -R mozilla-beta/$loc -r default ssh://hg.mozilla.org/releases/l10n/mozilla-beta/$loc
done

This goes through all locales, does a final pull, does the no-op-merge, and pushes to aurora, and then beta. That way, you minimize the time when commits can create heads.