Obtendo o código-fonte da Mozilla usando o Mercurial

Mercurial é uma ferramenta de gerenciamento de código fonte que permite aos usuários acompanhar as alterações no código-fonte localmente e compartilhar suas alterações com outras pessoas. É usado para o desenvolvimento do Firefox.

Configurações de cliente

Instalando e configurando o Mercurial

Veja Instalando o Mercurial.

Verificando uma árvore de origem

Existem vários repositórios hg hospedados no mozilla.org. Veja https://hg.mozilla.org/ para a lista completa.

mozilla-central (árvore principal de desenvolvimento)

A maioria dos desenvolvedores escreve patches relacionados a árvore mozilla-central.

Clone mozilla-central para obter uma cópia local do repositório e, em seguida, copiá-lo:

# Isso pode demorar...
hg clone https://hg.mozilla.org/mozilla-central/ firefox
cd firefox

Ultima construção bem sucedida

As últimas alterações confirmadas no seu checkout podem não ser bem-sucedidas. Você pode obter o código-fonte que passou os testes automáticos.

mozilla-inbound (usado para pousar seus patches)

A maioria dos desenvolvedores também mantém um clone do mozilla-inbound, que eles usam para colocar seus patches. Você provavelmente quer desenvolver em cima do mozilla-central, que tende a ser mais estável, mas você deve usar o mozilla-inbound quando seus patches estiverem prontos para pousar.  Veja esta página para verificar se o código mozilla-inbound funciona.

hg clone https://hg.mozilla.org/integration/mozilla-inbound/ inbound
cd inbound

mozilla-beta (árvore de desenvolvimento de pré-lançamento)

Quando uma nova versão do Firefox entra em testes beta, o código é ramificado em mozilla-beta. Este código representa a próxima versão esperada do navegador Firefox e deve ser bastante estável. Se você quiser construir este ramo, você pode clonar o repositório da seguinte forma:

# Coloque a fonte Mozilla para a pasta beta-src/ - isso pode demorar 
# centenas de megabytes de histórico são baixados para .hg
hg clone https://hg.mozilla.org/releases/mozilla-beta/ beta

cd beta

mozilla-release (árvore de lançamento)

Para obter o repositório de origem para a versão atual do Firefox, faça o seguinte:

hg clone https://hg.mozilla.org/releases/mozilla-release release
cd release

comm-central (Thunderbird/SeaMonkey/Calendar)

Veja o código fonte Comm-central (Mercurial) para mais informações sobre como puxar e construir com o comm-central.

L10n repos

Se você está criando uma nova localização baseada em uma versão já localizada de um projeto Mozilla, você estará interessado em clonar este código.  O código para todos os projetos l10n ficam em l10n-central  e é organizado (na maioria dos casos) pelo código ISO de dois caracteres do código do idioma. Ao clonar, use o mesmo código ISO para nomear o diretório local que irá armazená-lo. Para obter esse código, faça o seguinte:

# Coloque a fonte Mozilla para a pasta src/ - isso pode demorar
# centenas de megabytes de histórico são baixados para .hg
hg clone https://hg.mozilla.org/l10n-central/seu-codigo-ISO seucodigoISO

cd seucodigoISO

Bundles

Veja Mercurial bundles para informações sobre como baixar um único arquivo grande em vez de usar "hg clone".

Usando um Repositório Unificado

Existem vários repositórios para o Firefox. É comum querer interagir com mais de um deles. Confira https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/unifiedrepo.html para obter instruções sobre como fazer isso de maneira eficiente.

Construção

Por padrão, sem configuração, uma compilação similar a release é feita. Se desejar, você pode configurar a compilação usando um arquivo .mozconfig e make -f client.mk. Diferentes SOs possuem pré-requisitos diferentes para uma construção bem-sucedida, consulte a documentação de construção para verificar se eles estão disponíveis em sua máquina de construção.

Veja mais

  • A página do Mercurial tem informações sobre como criar diffs, confirmar alterações e publicar repositórios compartilhados.
  • Confira este link se você preferir trabalhar com o repositório git.