#use wml::debian::template title="Usando o git para manipular o código-fonte do site web" #use wml::debian::translation-check translation="1c96e54427d682f8dbb97fc1f4b6b9afca0ab042"
Vamos direto ao assunto — nesta seção você aprenderá como criar uma cópia local do repositório main, como manter esse repositório atualizado e como enviar seu trabalho. Também explicaremos como trabalhar nas traduções.
Primeiro, instale o Git. Em seguida, configure o Git e insira seu nome e endereço de e-mail. Se você é um(a) usuário(a) novo(a) do Git, provavelmente é uma boa ideia primeiro ler a documentação geral do Git.
Seu próximo passo é clonar o repositório (em outras palavras: fazer uma cópia local dele). Existem duas maneiras para fazer isso:
webwml
usando o seguinte comando:
git clone git@salsa.debian.org:webmaster-team/webwml.git
git clone https://salsa.debian.org/webmaster-team/webwml.git
Dica: clonar todo o repositório webwml
requer o
download de aproximadamente 1,3 GB de dados, o que pode ser bastante se você
estiver em uma conexão de Internet lenta ou instável. Portanto, é possível
definir uma profundidade mínima para um download inicial menor:
git clone git@salsa.debian.org:webmaster-team/webwml.git --depth 1
Depois de obter um repositório utilizável (raso), você pode aprofundar a cópia local e, eventualmente, convertê-la em um repositório local completo:
git fetch --deepen=1000 # aprofunda o repo para mais 1000 commits git fetch --unshallow # busca todos os commits ausentes, converte o repositório para um completo
Você também pode obter apenas um subconjunto das páginas:
git clone --no-checkout git@salsa.debian.org:webmaster-team/webwml.git
cd webwml
git config core.sparseCheckout true
.git/info/sparse-checkout
dentro do diretório
webwml
para definir o conteúdo que você deseja obter. Por
exemplo, se deseja recuperar apenas os arquivos base, traduções do
inglês, catalão e espanhol, o arquivo será dessa forma:
/* !/[a-z]*/ /english/ /catalan/ /spanish/
git checkout --
A cada poucos dias (e definitivamente antes de começar algum trabalho de edição!) você deve fazer um
git pull
para obter quaisquer arquivos do repositório que foram alterados.
É altamente recomendável manter seu diretório de trabalho Git local limpo antes
de executar git pull
e começar a editar alguns arquivos.
Se você tiver alterações que não foram feitos commit, ou commits locais que não
estão presentes no repositório remoto no branch atual, executar
git pull
criará automaticamente merge commits ou até mesmo falhará
devido a conflitos. Por favor, considere manter seu trabalho inacabado em
outro branch ou usar comandos como git stash
.
Nota: O Git é um sistema de controle de versão distribuído (não centralizado). Isso significa que quando você fizer o commit das alterações, elas serão armazenadas apenas em seu repositório local. Para compartilhá-los com outras pessoas, você também precisará enviar suas alterações para o repositório central no Salsa.
Vejamos um exemplo mais prático e uma sessão de edição típica.
Estamos assumindo que você obteve uma
cópia local do repositório usando
git clone
. Seus próximos passos são:
git pull
git add caminho/para/os/arquivos git commit -m "Sua mensagem de commit"
webwml
, poderá enviar suas alterações
diretamente para o repositório no Salsa: git push
webwml
, envie suas alterações com um
merge request ou entre em
contato com outros(as) desenvolvedores(as) para obter ajuda.
Se você incluir Closes: #
nnnnnn no conteúdo do log do
seu commit, então o bug de número #
nnnnnn será fechado
automaticamente quando você enviar suas alterações. A forma precisa disso é a
mesma que
na política Debian.
Muitos sites web do Debian suportam SSL/TLS, por favor use links com HTTPS sempre que possível e sensato. No entanto, alguns sites web Debian/DebConf/SPI/etc não têm suporte a HTTPS ou usam apenas o CA SPI (e não um CA SSL confiável para todos os navegadores). Para evitar causar mensagens de erro para usuários(as) não Debian, por favor não crie links para esses sites usando HTTPS.
O repositório Git rejeitará commits contendo links HTTP simples para sites web do Debian que suportam HTTPS, ou contendo links HTTPS para sites web Debian/DebConf/SPI que são conhecidos por não suportarem HTTPS ou usarem certificados assinados apenas pela SPI.
As traduções devem sempre ser mantidas atualizadas com o arquivo em inglês
correspondente. O cabeçalho translation-check
nos arquivos de
tradução é usado para rastrear em qual versão do arquivo em inglês a tradução
atual foi baseada. Se você alterar os arquivos traduzidos, precisará atualizar
o cabeçalho translation-check
para corresponder ao hash do commit
Git da alteração correspondente no arquivo em inglês. Você pode identificar o
hash com o seguinte comando:
git log caminho/para/arquivo/em/inglês
Se você fizer uma nova tradução de um arquivo, por favor use o script
copypage.pl
.
Ele cria um template para seu idioma, incluindo o cabeçalho de tradução
correto.
smart_change.pl
é um script projetado para tornar mais fácil
atualizar arquivos originais e suas traduções juntos. Existem duas maneiras de
usá-lo, dependendo das alterações que você está fazendo.
Veja como usar smart_change.pl
e como atualizar os cabeçalhos
translation-check
quando estiver trabalhando em arquivos
manualmente:
smart_change.pl -c COMMIT_HASH
(use o hash do commit
das alterações nos arquivos originais).
Ele pegará as alterações e atualizará os cabeçalhos dos arquivos
traduzidos.git diff
).Como alternativa, você pode trabalhar com expressões regulares para fazer várias alterações nos arquivos em uma única passagem:
smart_change.pl -s s/FOO/BAR/ origfile1 origfile2 ...
git diff
).smart_change.pl origfile1 origfile2
(ou seja, sem o regexp desta vez). Ele agora apenas
atualizará os cabeçalhos dos arquivos traduzidos.É certo que isso requer um pouco mais de esforço do que o primeiro exemplo, pois envolve dois commits, mas é inevitável devido à maneira como os hashes do Git funcionam.
O código-fonte do site web do Debian é gerenciado com o Git e localizado em
Se você precisa de acesso ilimitado de escrita no repositório, por exemplo, se
está prestes a se tornar um(a) contribuidor(a) frequente, por favor,
solicite o acesso de escrita através da interface web
Se você é novo(a) no desenvolvimento do site web do Debian e não tem experiência anterior, por favor envie um e-mail para debian-www@lists.debian.org e se apresente antes de solicitar acesso ilimitado de escrita. Seja gentil e nos conte mais sobre você, por exemplo, em qual parte do site web planeja trabalhar, quais idiomas fala, e também se há outro(a) membro(a) da equipe do Debian que pode atestar por você.
Não é necessário obter acesso ilimitado de escrita no repositório — você sempre pode enviar um merge request e permitir que outros(as) desenvolvedores(as) revisem e aceitem seu trabalho. Por favor, siga o procedimento padrão para solicitações de merge requests fornecido pela plataforma Salsa GitLab por meio de sua interface web e leia os dois documentos a seguir:
Por favor observe que os merge requests não são monitoradas por todos(as) os(as) desenvolvedores(as) do site web. Portanto, pode levar algum tempo até que receba algum feedback. Se quer saber se sua contribuição será aceita ou não, por favor envie um e-mail para a lista de discussão debian-www e peça uma revisão.
Se você está trabalhando no site web do Debian, provavelmente quer saber o
que está acontecendo no repositório webwml
. Há duas maneiras de se
manter atualizado(a): notificações de commit e notificações de merge request.
Configuramos o projeto webwml
no Salsa para que os commits
sejam mostrados no canal IRC #debian-www.
Se deseja receber notificações sobre commits no repo webwml
por e-mail, assine o pseudopacote www.debian.org
via
tracker.debian.org e ative a palavra-chave vcs
, seguindo estes
passos (apenas uma vez):
www.debian.org
(você pode autenticar
via SSO ou registrar um e-mail e senha, se ainda não estiver usando
o tracker.debian.org para outros propósitos).>modify keywords
, marque vcs
(se não estiver
marcado) e salve.webwml
.
Se deseja receber e-mails de notificação sempre que houver novos merge
requests enviadas para o repositório webwml
no Salsa, você pode
configurar suas opções de notificação na interface web seguindo estas etapas: