Mozilla:Migracje

Z Aviary.pl wiki
Skocz do: nawigacja, szukaj

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 merge
merging browser/chrome/browser/browser.dtd
warning: conflicts during merge.
merging browser/chrome/browser/browser.dtd incomplete! (edit conflicts, then use 'hg resolve --mark')
merging browser/chrome/browser/devtools/app-manager.dtd
merging browser/chrome/browser/devtools/toolbox.dtd
warning: conflicts during merge.
merging browser/chrome/browser/devtools/toolbox.dtd incomplete! (edit conflicts, then use 'hg resolve --mark')
merging browser/chrome/browser/devtools/webconsole.properties
merging browser/chrome/browser/preferences/preferences.properties
merging dom/chrome/dom/dom.properties
warning: conflicts during merge.
merging dom/chrome/dom/dom.properties incomplete! (edit conflicts, then use 'hg resolve --mark')
merging webapprt/webapprt/overrides/dom.properties
warning: conflicts during merge.
merging webapprt/webapprt/overrides/dom.properties incomplete! (edit conflicts, then use 'hg resolve --mark')
77 files updated, 3 files merged, 7 files removed, 4 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon

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