Mozilla Migracje

Stefan Plewako edited this page May 15, 2016 · 1 revision

Mozilla rozwija aplikacje (Firefox, Firefox mobile, SeaMonkey, Thunderbird) w etapach w sześciotygodniowych cyklach. Pod koniec cyklu kod aplikacji jest przenoszony do odpowiednich dla danego etapu repozytoriów (aurora, beta, release). W przypadku plików lokalizacyjnych dzieje się podobnie, z tą różnicą, że zespoły lokalizacyjne pracujące w central są odpowiedzialne za wykonanie migracji do aurory (migracjami z aurory do bety i później do release się nie zajmujemy).

Migracje staramy się wykonywać następnego dnia po migracji kodu i koordynujemy poprzez listę community-poland.

W dużym skrócie

Wykonanie migracji sprowadza się do wykonania poniższych komend:

 $ hg clone ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/pl tmpdir && cd tmpdir/
 $ hg pull -r default ssh://hg.mozilla.org/l10n-central/pl
 $ hg merge
 $ hg resolve --tool internal:other --all
 $ hg ci -m "Migrating central to aurora for Firefox 41"
 $ hg push
 $ cd .. && rm -rf tmpdir

Wersja szczegółowa

Linie pogrubioną czcionką to polecenia, reszta czcionką o stałej szerokości to ich przykładowe wyjście, komentarze normalnym tekstem. Na początek należy świeżą lokalną kopię repozytorium aurora w katalogu tmpdir i przejść do niej:

 $ hg clone ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/pl tmpdir && cd tmpdir/
 requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 4578 changesets with 8821 changes to 1376 files (+23 heads)
 updating to branch default
 1067 files updated, 0 files merged, 0 files removed, 0 files unresolved

Następnie pobieramy do klona aurory pobieramy zmiany od ostatniej migracji wrzucone do central:

 $ hg pull -r default ssh://hg.mozilla.org/l10n-central/pl
 pulling from ssh://hg.mozilla.org/l10n-central/pl
 searching for changes
 adding changesets
 adding manifests
 adding file changes
 added 96 changesets with 118 changes to 82 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)

Następnie staramy się połączyć zmiany z central z aurorą - przy odrobinie szczęścia („0 files unresolved”) wygląda to jak poniżej:

 $ hg merge
 merging browser/chrome/browser/browser.dtd
 merging browser/chrome/browser/devtools/toolbox.dtd
 merging dom/chrome/dom/dom.properties
 merging webapprt/webapprt/overrides/dom.properties
 69 files updated, 4 files merged, 19 files removed, 0 files unresolved
 (branch merge, don't forget to commit)

Przeważnie jednak będzie wyglądało to inaczej („4 files unresolved” i „use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon”) i będzie potrzebne dodatkowe polecenie:

 $ hg resolve --tool internal:other --all

Pozostaje zatwierdzić zmiany i wysłać do repozytorium:

 $ hg ci -m "Migrating central to aurora for Firefox 41" && hg push
 pushing to ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/pl
 searching for changes
 remote: adding changesets                        
 remote: adding manifests
 remote: adding file changes
 remote: added 111 changesets with 145 changes to 84 files
 remote: Trying to insert into pushlog.
 remote: Please do not interrupt...
 remote: Inserted into the pushlog db successfully.

Porządek:

 $ cd .. && rm -rf tmpdir