Manuals

Criar e Applicar Correcções

Para projectos de código aberto (como este) toda a gente tem acesso de leitura ao repositório, e toda a gente pode contribuir para o projecto. Então como são controladas essas contribuições? Se toda a gente pudesse submeter alterações o projecto estaria em instabilidade permanente, e provavelmente permanentemente inutilizado. Nesta situação a alteração é gerida através da submissão de um ficheiro de correcção para a equipa de desenvolvimento, que tem acesso para escrever. Eles podem então rever primeiro a correcção e então submetê-la para o repositório ou devolvê-la ao autor.

Ficheiros de correcção são simplesmente ficheiros de Comparação-Unificada que mostram as diferenças entre a tua cópia de trabalho e a revisão base.

Criar um Ficheiro de Correcção

Primeiro tu precisas de construir e testar as tuas alterações. Então em vez de usares TortoiseSVNSubmeter... na pasta pai, seleccionas TortoiseSVNCriar correcção...

Figura 4.60. A caixa de diálogo de Criar Correcção

A caixa de diálogo de Criar Correcção

Agora podes seleccionar os ficheiros que queres incluir na correcção, tal como tu farias numa submissão completa. Isto irá produzir um ficheiro simples contendo um sumário de todas as alterações que efectuaste nos ficheiros seleccionados, desde a última actualização do repositório.

As colunas nesta caixa de diálogo podem ser customizadas da mesma maneira que as colunas na caixa de diálogo Verificar alterações. Consulta “Estado Remoto e Local” para mais detalhes.

Ao clicar no botão de Opções, podes especificar como o caminho é criado. Por exemplo, podes especificar que as mudanças no final da linha ou espaços em branco não são incluídas no arquivo do caminho final.

Tu podes produzir correcções separadas, contendo alterações em diferentes conjuntos de ficheiros. É claro que se criaste um ficheiro de correcção, e efectuaste mais alterações aos mesmos ficheiros, criando uma segunda correcção, o segundo ficheiro de correcção irá incluir ambos os conjuntos de alterações.

Grava apenas o ficheiro usando um nome da tua escolha. Ficheiros de correcções podem ter a extensão que desejes, mas por convenção eles dever usar a extensão .patch ou .diff. Agora estás pronto para submeter o teu ficheiro de correcção.

Dica

Do not save the patch file with a .txt extension if you intend to send it via email to someone else. Plain text files are often mangled with by the email software and it often happens that whitespaces and newline chars are automatically converted and compressed. If that happens, the patch won't apply smoothly. So use .patch or .diff as the extension when you save the patch file.

Tu podes também guardar a correcção na área de transferência em vez de o fazer para um ficheiro. Poderás fazer isto para que possas colá-lo num email para ser revisto por outros. Ou se tiveres duas cópias de trabalho numa máquina e quiseres transferir alterações de uma para outra, a correcção na área de transferência é a maneira conveniente de o fazer.

Se preferires podes criar um ficheiro correcção a partir das caixas de diálogo Submeter ou Verificar alterações. Selecciona apenas os ficheiros e usa o item do menu de contexto para criar a correcção a partir desses ficheiros. Se quiseres ver a caixa de diálogo Opções terás de manter premida a tecla shift quando clicares à direita.

Aplicar um Ficheiro de Correcção

Os ficheiros de correcção são aplicados na tua cópia de trabalho. Isto deverá ser feito a partir de uma pasta do mesmo nível da que foi usada para criar a correcção. Se não tens a certeza de qual é, olha apenas para a primeira linha do ficheiro de correcção. Por exemplo, se o primeiro ficheiro a ser trabalhado era doc/source/english/chapter1.xml e a primeira linha no ficheiro de correcção Index: english/chapter1.xml, então precisas de aplicar a correcção na pasta doc/source/. No entanto, mesmo que estejas na cópia de trabalho correcta, se escolheres o nível de pastas errado, o TortoiseSVN irá dar conta e sugere o nível correcto.

De modo a aplicar um ficheiro de correcção à tua cópia de trabalho, necessitas de pelo menos, ter acesso de leitura ao repositório. A razão para isto é que, o programa de integração tem de referenciar as alterações até à revisão em que elas foram efectuadas pelo programador remoto.

A partir do menu de contexto desse ficheiro, clica em TortoiseSVNAplicar correcção... Isto fará aparecer uma uma caixa de diálogo abrir ficheiro, que te permitirá seleccionar o ficheiro de correcção a aplicar. Por defeito, só são mostrado ficheiros .patch ou .diff, mas tu podes optar por Todos ficheiros. Se guardaste previamente uma correcção na área de transferência, podes usar o Abrir da área de transferência... a partir da caixa de diálogo, abrir ficheiro. Ter em atenção que esta opção só aparece se guardaste uma correcção na área de transferência usando TortoiseSVNCriar correcção.... Copiar uma correcção para a área de transferência, a partir de outra aplicação, não fará o botão aparecer.

Alternativamente, se o ficheiro de correcção tem uma extensão .patch ou .diff, podes clicar directamente nele com o botão direito e seleccionar TortoiseSVNAplicar correcção.... Neste caso serás solicitado a introduzir a localização da cópia de trabalho.

Estes dois métodos apenas diferem no modo de fazer a mesma coisa. Com o primeiro método, tu seleccionas a CT e navegas até ao ficheiro de correcção. Com o segundo, seleccionas o ficheiro de correcção e navegas até à CT.

Uma vez que tenhas seleccionado o ficheiro de correcção e a localização da cópia de trabalho, o TortoiseMerge irá correr, integrando as alterações do ficheiro de correcção com a tua cópia de trabalho. Uma pequena janela lista os ficheiros que foram alterados. Efectua duplo clique em cada uma de cada vez, para reveres as alterações e guardares os ficheiros integrados.

A correcção do programador remoto foi agora aplicada na tua cópia de trabalho, então precisas agora de submeter de modo a permitir que todos possam aceder às alterações a partir do repositório.

TortoiseSVN homepage