# O Manual do &kdesvn;

## Introdução

O &kdesvn; é um cliente de Subversion do &kde;.

Deverá ter algum conhecimento sobre o próprio Subversion, mas felizmente a maioria dos itens são intuitivos.

Poderá enviar relatórios de erros e funcionalidades através do Sistema de Gestão de Erros do &kde;.

### Termos

Se estiver familiarizado com os sistemas de controlo de versões, poderá ignorar isto - ou ler e corrigir o autor ;)

Repositório

- O armazém central de dados. Poderá ser uma base de dados ou um sistema de ficheiros simples. Sem os clientes especiais, não será capaz de ler dados nele. Para os repositórios do Subversion, o &kdesvn; será um desses clientes.

Cópia local

- Uma cópia simples de um repositório no sistema de ficheiros local. Esta é usada com qualquer gestor de ficheiros normal, editando os seus ficheiros, etc. A informação do RCS poderá ser lida com clientes como o &kdesvn;.

  Lembre-se que o Subversion não sabe nada sobre o KIO, pelo que a cópia local deverá residir numa área onde possa ser acedida sem qualquer protocolo em especial, ⪚ fish:// ou algo do género não será possível.

WebDAV

- O WebDAV é um protocolo que lhe permite modificar os ficheiros num servidor Web remoto. O Subversion é um tipo especial de WebDAV quando os repositórios são acedidos a partir de um servidor Web. Numa utilização normal, este modo é apenas para leitura. Com configurações especiais, poderá obter um WebDAV activo também para escrita que poderá aceder com um navegador especializado. O &kdesvn; NÃO é um cliente de WebDAV, mas o &konqueror; é, através do seu protocolo webdav://. Contudo, com o &kdesvn; poderá navegar pela árvore de versões de um repositório (através de http://)

## Usar o &kdesvn;

### Funcionalidades do &kdesvn;

O &kdesvn; compreende os seguintes protocolos para navegar pelos repositórios:

http

- Protocolo-padrão de navegação Web.

https

- Protocolo-padrão de navegação Web - versão segura.

(k)svn+http

- Protocolo-padrão de navegação Web. Pode ser usado para deixar que o &konqueror; invoque directamente o &kdesvn;.

(k)svn+https

- Protocolo-padrão de navegação Web - versão segura. Pode ser usado para deixar que o &konqueror; invoque directamente o &kdesvn;.

(k)svn+file

- Protocolo de repositórios locais. Pode ser usado para deixar que o &konqueror; invoque directamente o &kdesvn;.

(k)svn

- O protocolo próprio do servidor do Subversion.

(k)svn+ssh

- Subversion sobre SSH.

file

- Acesso directo ao repositório. O &kdesvn; verifica se uma dada localização é um repositório ou uma cópia local e abre-o no modo correcto. Para o Subversion, o `file:///pasta` e `/pasta` não são a mesma coisa!

Esta lista também pode ser usada para os &URL;'s indicados através da linha de comandos.

### Introdução ao Subversion e ao &kdesvn;

Esta secção é principalmente para principiantes não familiarizados com o Subversion e explica como o Subversion e/ou o RCS funcionam.

#### Criar uma cópia local

As cópias locais DEVEM estar acessíveis por localizações locais. O Subversion não conhece nada sobre os pseudo-sistemas de ficheiros como o `smb://` ou o `fish://`. O &kdesvn; traduz alguns deles, se possível (como o `system:/home`) mas não é possível fazê-lo pela rede.

Primeiro que tudo, deverá criar uma cópia local do seu repositório. Para tal, seleccione a opção Subversion Geral Extrair um repositório . Dentro da seguinte janela, deverá indicar o &URL; do repositório que deseja usar, ⪚, algo do tipo `http://localhost/repos/o-meu-projecto`. Também é possível obter sub-pastas de um repositório, ⪚, `http://localhost/repos/o-meu-projecto/principal` ou algo do género.

Seleccione e/ou crie uma pasta local, onde deverá residir a cópia local.

Por último, a versão a obter. Na maioria dos casos, será a HEAD. Isto garante que a última versão gravada é a referenciada.

Depois de carregar em OK, o &kdesvn; irá criar a sua nova cópia local e (se a opção estiver assinalada), abri-la-á.

Quando tiver aberto um repositório para navegação, poderá marcar uma pasta e depois seleccionar a opção Subversion Repositório Obter a localização do repositório actual e preencher as janelas como descrito acima. Depois, só será extraída a localização marcada.

#### Enviar as modificações locais

Marque o item ou itens que deseja enviar e seleccione &Ctrl;# Subversion Cópia local Enviar

Se tentar enviar sem qualquer item seleccionado, o &kdesvn; irá usar o elemento de topo da cópia local aberta, &ie; a localização propriamente dita da cópia local.

Esta operação é sempre recursiva, o que significa que, se seleccionar uma pasta, o &kdesvn; irá enviar sempre todos os itens alterados por baixo dela. Quando definir que deseja rever todos os itens antes de os enviar, na janela seguinte irão aparecer todos os ficheiros que o &kdesvn; iria enviar. Aí poderá desligar os itens que não deseja enviar. Nesses caso, o &kdesvn; envia todos os itens separados, &ie;, de forma não recursiva. Poderá também seleccionar os itens ainda não adicionados ou repositório e enviá-los (se não estiverem marcados para ser ignorados). Assim poderá ver se não existem itens mais recentes que se tenha esquecido.

Indique uma mensagem de registo para o que deseja enviar e carregue em OK, para que a transferência se inicie.

#### Actualizar a cópia local

Isto volta a colocar a sua cópia local em sincronização com o repositório. Poderá configurar que o &kdesvn; verifica, ao abrir uma cópia local, os ficheiros novos/modificados no repositório. Isto irá funcionar em segundo plano e você poderá continuar a trabalhar entretanto no &kdesvn;. Quando terminar, os itens ou pastas com itens com versões mais recentes serão marcados.

Para obter as alterações, seleccione a opção Subversion Cópia local Actualizar para a última versão . Isto irá actualizar os dados para a última versão no repositório. Se quiser obter uma versão específica, seleccione a opção Subversion Cópia local Actualizar para a versão e seleccionar a versão que deseja no campo seguinte.

Se não tiver nenhum item seleccionado, a actualização será feita em toda a cópia local aberta, caso contrário, só será recursiva para os itens seleccionados.

#### Adicionar e Remover na Cópia Local

Ambas as operações necessitam de dois passos: primeiro adicione ou remova e depois envie essas alterações para o repositório. Antes de as enviar, podê-las-á anular.

##### Adicionar itens

A adição de itens a uma cópia local poderá ser feita de três formas:

Seleccionar os itens não-adicionados e adicioná-los

- Copie com o &konqueror; ou outra ferramenta qualquer para a área da cópia local. Percorra a lista, marque os itens e seleccione a opção Insert Subversion Cópia local Adicionar os ficheiros/pastas seleccionados . Quando quiser adicionar pastas novas, com todos os seus sub-itens, seleccione a opção &Ctrl;Insert Subversion Cópia local Adicionar recursivamente os ficheiros/pastas seleccionados .

Verificar e adicionar recursivamente

- Poderá verificar se existe algo na cópia local que não esteja adicionado ao repositório. Depois de seleccionar a opção Subversion Cópia local Procurar por itens não-adicionados , irá aparecer uma janela onde todos os itens não-adicionados serão apresentados. Se carregar em OK, irá adicionar todos os itens marcados à cópia local; os itens que não desejar adicionar deverão estar desmarcados antes.

Arrastar e largar

- Marque no &konqueror; ou noutro sistema de ficheiros compatível os itens que deseja adicionar e arraste-os para o &kdesvn;. Podê-los-á largar nas pastas dentro da cópia local aberta e depois o &kdesvn; irá copiar os itens largados para ela e adicioná-los.

##### Apagar os itens da cópia local e do repositório de versões

A remoção de itens é sempre recursiva. Por exemplo, quando apagar uma pasta, todos os seus sub-itens serão também apagados. Marque o que deseja e seleccione a opção Subversion Geral Apagar os itens seleccionados. Os itens sairão do controlo de versões e serão apagados do disco.

#### Mostrar os registos históricos

O registo de histórico poderá ser iniciado com o &Ctrl;L quando um ou mais itens estiver marcado na visão geral. Dependendo da sua configuração (ver em subversion-settings), o &kdesvn; irá obter os mesmos itens de registo que começam na última versão e apresenta-os.

##### A janela de apresentação do histórico

Do lado esquerdo, irá ver a lista de itens de registo que o &kdesvn; recebeu. A mensagem de registo é reduzida a uma linha para caber. A mensagem completa aparece na janela superior direita quando se marca um item. Na janela inferior direita, irá ver a lista de ficheiros alterados. Estas janelas só aparecem se esta lista foi transferida, dependendo isto da sua configuração.

Com os botões acima, poderá seleccionar outro intervalo de registos a mostrar.

Este intervalo é invocado sem qualquer limite prévio, pelo que terá de ter cuidado com os repositórios grandes.

O botão abaixo mostra sempre o trabalho sobre o item seleccionado para o registo, não sobre o item seleccionado na lista de ficheiros alterados. Por isso, quando carregar em Diferença para o anterior aí, fará a diferença de todos os itens alterados nesta versão, caso sejam equivalentes ou estejam abaixo do item de Subversion seleccionado para obter os registos anteriores. O mesmo acontece para o Diferenças de versões.

`Anotar` obviamente só funciona se o item a consulta for um ficheiro.

Em todos os itens da lista (ambas as listas), terá um menu de contexto activo para algumas operações extra. Na lista da esquerda, este será Mudar a versão das diferenças da esquerda (&ie;, versão de início) e Mudar a versão das diferenças da direita (&ie;, fim ou destino das diferenças). Nas diferenças unificadas, a parte fica marcada com um `+++`). Se tiver seleccionado estas versões, as mesmas aparecerão marcadas com algumas pequenas setas.

### Trabalhar com os repositórios

A navegação simples pelo repositório poderá ser feita com o &konqueror;, &dolphin; ou outros navegadores de ficheiros do género: abra um URL com o protocolo descrito em kdesvn-features (as variantes que começam por k), para que estas apresentem o conteúdo. Por isso, as operações simples como a cópia, mudança de local e remoção poderão funcionar. Ao adicionar uma pesquisa do tipo ?rev=`xxx` a listagem virá de uma versão específica. O formato da pesquisa por versões está descrito em revision-syntax, poderá ver mais algumas informações sobre o KIO::ksvn em kdesvn-kio

Todo o trabalho excepto o Copiar só poderá ser feito quando navegar pela versão HEAD.

#### Repor os itens apagados

No Subversion, a reposição de itens apagados é uma operação de cópia do item para uma dada versão. Por isso, quando pensar em repor ficheiros, veja o repositório na versão anterior à remoção do item. Seleccione Subversion Repositório Seleccionar a versão de navegação e indique a versão desejada. Agora, o &kdesvn; mostra o conteúdo nesta altura. Marque o item que deseja repor, seleccione a opção C Subversion Geral Copiar . Dentro da janela seguinte, o destino está sempre na versão HEAD (a última), a origem está na versão que optou por navegar. Preencha o local de destino, carregue em OK e inicie a cópia. Após o sucesso da operação, volte a colocar a navegação na versão HEAD, para que apareça o item reposto.

#### Importar pastas

Devido a restrições do próprio Subversion, só poderá importar pastas - os ficheiros individuais não são permitidos.

##### Por arrastamento e largada

Marque em qualquer gestor de ficheiros compatível a pasta que deseja importar e arraste-a para o item da pasta no &kdesvn; onde a deseja importar.

##### Seleccionar a pasta a importar com o selector de pastas

Marque a pasta para onde deseja importar uma pasta nova. Depois seleccione a opção Subversion Geral Importar as pastas para o actual e seleccione a sua pasta desejada.

### Outras Operações

#### Reunir

Abra o repositório ou a cópia local, marque o item que deseja juntar e seleccione a opção Subversion Geral Reunir . Introduza na janela seguinte os valores que pretende. Se for aberto a partir de um repositório, a origem 1 e a origem 2 estão preenchidos; se for aberto a partir de uma cópia loca, o destino estará preenchido com o item seleccionado de momento. O tratamento deste parâmetro é ligeiramente diferente de usar a visualização de diferenças interna do Subversion ou de usar um programa externo como o &kdiff3;. O destino deverá ser SEMPRE um ficheiro ou pasta local. Poderá alternar entre uma reunião interna ou externa com a opção Usar uma reunião externa.

##### Reunião interna

O significado é exactamente o mesmo da ferramenta de linha de comandos própria do Subversion. Quando a origem1 e a origem2 são iguais, as versões de início e de fim deverão ser diferentes. Se não forem iguais, a versão inicial é atribuída à origem1 e a versão final à origem2. O destino DEVE ser uma cópia local, caso contrário o Subversion irá mostrar uma mensagem de erro.

As opções de marcação têm os seguintes significados:

Recursivo

- Torna todas as operações recursivas ao lidar com pastas.

Tratar os itens não-relacionados como relacionados

- Se estiver activa, os itens não-relacionados serão tratadas como se o fossem. Caso contrário, o Subversion irá remover um m lado e adicioná-lo-á ao outro lado de novo.

Forçar a remoção nos itens modificados/não-adicionados

- Se não estiver definido e se a reunião necessitar de apagar um item modificado ou não adicionado, a reunião do Subversion será mal-sucedida. Caso contrário, estes itens serão apagados.

Apenas executar como teste sem modificação

- Se estiver activo, o Subversion envia apenas a notificação do que iria fazer, mas não modifica a cópia local.

##### Usar um programa externo na reunião

Veja mais detalhes diffmerge-settings para configurar a ferramenta de reunião externa. O &kdesvn; gera a linha de comandos como está descrito aí. Antes disso, ela faz o seguinte:

1. Atribui a versão inicial como a versão da origem 1 e a versão final à origem 2. Depois verifica se elas são diferentes (a nível de localização e/ou número de versão). Em caso afirmativo, será feita uma reunião em três-pontos; caso contrário, será uma reunião simples entre a origem e o destino. Se a origem 2 estiver em branco, será também uma reunião simples.

2. Crie uma exportação para uma pasta temporária. Se for uma reunião, só existe a 'ver-inicial' de origem1, caso contrário serão usadas ambas as origens com as suas versões. Se o item for um ficheiro e não uma pasta, então obtém o conteúdo de uma versão específica.

3. Gera a chamada para o seu programa de reunião externa, tal como definido na Configuração. O resultado do erro será apresentado na janela de registo, para que possa ver o que se passa de errado (se algo estiver errado).

Nas diferenças com um destino de reunião interno, um ficheiro/pasta fora de controlo de versões não aparecerá porque as ferramentas externas não querem saber dele.

Se a opção recursiva não estiver definida, a exportação é feita como uma exportação plana. Cuidado: ao fazer isto com cópias locais, os itens externos não serão exportados.

#### Resolver conflitos

O &kappname; propriamente dito não tem um módulo de resolução de conflitos, mas poderá usar aplicações externas a partir do &kappname;. Em extern-resolve-setup encontra-se uma descrição de como configurar esta aplicação.

Ao marcar um item com o estado definido como em conflito (irá ver uma cruz vermelha nesses itens), poderá seleccionar a opção Subversion Cópia local Resolver o conflito . ou então no menu de contexto Resolver o conflito (apenas nos itens em conflito), o &kdesvn; irá iniciar então o programa que tiver configurado (ou o predefinido). Depois de terminar esta tarefa, deverá marcar o item como resolvido (Subversion Cópia local Marcar como resolvido), caso contrário não poderá enviar as suas alterações.

### Propriedades usadas pelo &kdesvn; para a configuração

#### Integração com sistemas de registo de erros

O projecto TortoiseSVN desenhou um sistema de propriedades adequado para integrar os sistemas de gestão de erros para a interface do Subversion. Neste momento, o &kdesvn; não suporta os campos extra na área de envios (acontecerá no futuro) e não compreende todas as propriedades, excepto as seguintes:

#### Propriedades de Integração do Gestor de Erros

Propriedade | Descrição | Exemplo
`bugtraq:url` | Guarda o &URL; do sistema de gestão de erros. Terá de conter o marcador `%BUGID%`. | https://bugs.kde.org/show_bug.cgi?id=%BUGID%
`bugtraq:logregex` | Contém uma ou duas expressões regulares, separadas por uma mudança de linha. Se só estiver definida uma expressão, então o ID básico do erro deverá ter correspondência nos grupos do texto da expressão regular. Se tiver definido duas expressões, então a primeira será usada para encontrar um texto relacionado com o ID do erro, mas que poderá conter algo mais que apenas o ID do erro (⪚ Erro #123 ou resolve o erro 123). A segunda expressão será então usada para extrair o ID concreto do erro a partir do texto extraído com a primeira expressão. Por favor tenha cuidado em não incluir espaços após a expressão regular e não se esqueça dos parêntesis em torno da descrição do número. | Único (útil para o TRAC):
    #(\d+)
Agora todos os números do tipo `#190` serão processador e traduzidos para um &URL; no 'logoutput'. Duas expressões:
    [Ii]ssue #?(\d+)(,? ?#(\d+))*
    (\d+)
##### Recordar Tenha cuidado com os espaços em branco a seguir ao `(\d+)`! Este é um dos erros mais comuns, quando as expressões não correspondem!

Nos repositórios locais abertos (&ie;, no protocolo `file://`) e nas cópias locais, estas propriedades serão pesquisadas de baixo para cima, a partir da pasta aberta, até que sejam encontradas ou que se chegue ao topo do repositório. Nos repositórios abertos pela rede (todos excepto o protocolo `file://`), só é pesquisada na pasta-mãe em si.

O suporte para vários conjuntos de propriedades deste tipo seguir-se-á (⪚, na sub-pasta, os valores extra para outros sistemas de registo, &etc;), mas na maioria dos casos, a avaliação de ligações únicas será suficiente.

### A árvore de versões

A árvore de versões tenta apresentar o histórico completo de um item, para que o utilizador possa ter uma percepção melhor sobre o histórico de um item. Tem de percorrer o histórico completo do repositório, porque irá necessitar de mais informação do que a dada pelo Subversion. Como isto produz uma grande quantidade de tráfego, a árvore de versões usa sempre a 'cache' interna do histórico.

#### Requisitos

A árvore de versões é gerada a partir do dot. Por isso, para uma árvore de versões funcional, deverá ter instalado o pacote graphviz.

### 'Cache' interna do histórico

O &kdesvn; poderá usar uma 'cache' interna do histórico para algumas operações. Na maioria dos casos é usado para a árvore de versões mas também ao ver o registo simplificado no modo desligado. As 'caches' estão organizadas como bases de dados SQLite guardadas em `$HOME/.sqvnqt/logcache`. Cada ficheiro numerado é o armazenamento de um repositório diferente.

A base de dados poderá ficar enorme! Por isso, poderá desactivar a actualização automática da 'cache' do histórico na configuração.

Poderá simplesmente remover uma base de dados; aí, não será devolvido qualquer histórico para esse repositório (nem qualquer árvore de versões!), mas se não desactivar a actualização automática da 'cache', ao abrir da próxima vez este repositório ou uma cópia local associada o mesmo será preenchido de novo.

#### Modo desligado

O &kdesvn; poderá funcionar sem acesso à rede, &ie; poderá mudar para o facto de não permitir nenhum acesso à rede. Isto poderá ser útil quando estiver a trabalhar sem rede, como acontece às vezes com portáteis. Nesses casos, o &kdesvn; irá obter sempre o histórico da 'cache' interna). Este histórico está reduzido às funções básicas por razões técnicas, pelo que o histórico em 'cache' poderá (mas não deverá) ser diferente do registo real. Será diferente na medida em que não irá mostrar todas as operações de cópia, mesmo que a opção O histórico segue as mudanças de nós esteja activa.

#### A 'cache' do histórico e a árvore de versões

A árvore de versões só irá usar a 'cache' do histórico, porque se não fosse assim teria de obter sempre o histórico de novo. Não irá actualizar a 'cache' (mas isto poderá ser alterado em versões posteriores).

### Significado dos ícones sobrepostos

Os itens podem ser marcados com ícones sobrepostos quando não estiverem num estado normal.

Bloqueado

- Este item está bloqueado. Na última coluna, aparece o dono do bloqueio. Poderá também configurar se o &kdesvn; deverá sondar os itens bloqueados no repositório. Porém, tenha cuidado: dependendo do tipo de servidor, isto poderá levar bastante tempo!

Precisa de bloqueio

- Este item tem de ser bloqueado antes de editar os itens e enviá-los. Até que não defina um bloqueio, o Subversion mantém o item apenas para leitura.

Actualizações

- Este item ou - no caso de uma pasta - um sub-item dele tem uma versão mais recente no repositório.

Modificado

- Este item ou - no caso de uma pasta - um sub-item dele foi alterado localmente no disco.

ícone de adicionado

- Este item está adicionado a nível local a nível do Subversion, mas ainda não foi enviado.

ícone de removido

- Este item está removido localmente, mas ainda não foi confirmada a remoção no Subversion.

ícone de removido

- Este item ou - no caso de uma pasta - tem conflitos por resolver com a última actualização.

### O &kdesvn; e as senhas

O &kdesvn;/Subversion é capaz de gravar as senhas. A gravação das mesmas é sempre um risco de segurança, mas torna uma interface gráfica mais fácil de usar.

#### Não gravar as senhas

É a forma mais segura, mas algumas vezes não é fácil para interfaces como a do &kdesvn;. Em particular, as operações em segundo plano do &kdesvn; iriam sempre pedir uma senha no caso de o repositório ter um acesso restrito para as operações de leitura, como a actualização e a leitura do estado. O mesmo aconteceria no envio e assim por diante. Por isso, se não gravar as senhas, deverá desactivar a opção Procurar por actualizações na cópia local aberta, entre outras.

#### Gravar as senhas no &kwallet5;

O armazenamento de senhas seguro, que é usado por uma grande quantidade de programas do &kde;, como o &kmail; e o &konqueror;. Se estiver a gravar senhas e usar principalmente o &kdesvn;, deveria usar esta opção. Tenha cuidado que o armazenamento encriptado não é um armazenamento altamente seguro. Para mais detalhes, veja a documentação do &kwallet5;.

#### Gravar na configuração de senhas própria do Subversion

Isto não é recomendado, porque as senhas são guardadas em texto simples! Não acredita? Veja os ficheiros em `~/.subversion/auth/svn.simple`. Só deverá usar isto se estiver a usar com frequência outros clientes que não o &kdesvn;, como o rapidsvn ou o esvn, ou ainda o cliente da linha de comandos svn. Se estiver a usar o cliente da linha de comandos principalmente para extracções ou actualizações, que não precisam de uma senha, e o &kdesvn; para enviar/mover/copiar, deveria usar em alternativa o &kwallet5;.

#### 'Cache' interna de senhas

Poderá activar uma 'cache' interna de senhas que irá guardar as senhas enquanto o &kdesvn; estiver em execução em memória. Por isso, não terá de introduzir uma senha duas vezes, mesmo que não a tenha gravado na carteira.

#### Caso especial do 'svn+ssh'

Se usar o Subversion com 'svn+ssh', o armazenamento das senhas poderá ser feito com o 'ssh' e o 'ssh-agent'. Para isso, terá de ter acesso de SSH à máquina e repositório remotos. Quando quiser gravar, deverá usar a autenticação por chave pública do SSH, não a autenticação pela senha (de facto, o SSH prefere a autenticação por chave pública). Para isso, deverá colocar a sua chave pública de SSH no destino, ⪚, o sistema do repositório. As senhas do SSH nunca serão tratadas pelo armazenamento de senhas do Subversion ou pelo &kwallet5; ou pela 'cache' interna de senhas.

Se não quiser que lhe peça a senha da sua chave de SSH, poderá usar o ssh-agent, seleccionando a opção Subversion Adicionar as identidades de SSH ao ssh-agent, poderá guardar a senha da sua chave de SSH para a sua versão actual, para que não seja necessário mais introduzir a sua senha.

## &konqueror;, KIO, &kdesvn;

### Descrição

Desde a versão 0.7.0 do &kdesvn;, o mesmo vem com alguns módulos que integram alguns comandos directamente como menus do &konqueror;.

Protocolos do KIO

- Implementa as rotinas para os seguintes protocolos:

  - ksvn+http

  - ksvn+https

  - ksvn+file

  - ksvn+ssh

  - ksvn

  Estes protocolos são desenhados apenas para os repositórios, não para as cópias locais. P.ex., o `ksvn+file:///`local`` deverá apontar para o início de um repositório diferente da aplicação em si ou do KPart. As cópias locais poderão ser navegadas através do &konqueror;.

  Para escolher uma versão específica, poderá adicionar a pesquisa ?rev=`versão` ao &URL;.

Menus de contexto

- O &kdesvn; instala menus de contexto para o &konqueror;. Poderão ser vistos com o botão direito na janela do navegador (apenas no modo normal, não em nenhuma KPart), pelo que seria possível efectuar as acções mais frequentes directamente a partir do &konqueror; (ou em outros gestores de ficheiros que lêem os menus de contexto do &konqueror;, como o &dolphin;). Isto é feito através de uma chamada à variante para a linha de comandos do &kdesvn;.

#### Utilização do KIO fora do &konqueror; - um exemplo

Todas as aplicações baseadas no &kde; poderão usar estes protocolos. Como tal, seria possível obter todas as diferenças entre duas versões com o &kdiff3; sem nenhum conhecimento profundo.

##### Obter as diferenças entre as versões com o &kdiff3; e o KIO:ksvn

    kdiff3 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=423127 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=455064

Permite ao &kdiff3; imprimir todas as diferenças entre duas versões.

Se usar isto no &kdesvn; (diferenças entre duas versões) é MUITO mais rápido porque são usados os mecanismos internos do Subversion.

### Informação para os programadores sobre o KIO::ksvn

Poderá ignorar isto se não estiver interessado na programação com o KIO.

O KIO::ksvn::special conhece as seguintes operações; estas são feitas de forma quase igual à existente actualmente no KIO do 'kdesdk-kioslaves' por isso, por exemplo, o &kdevelop; podê-lo-á usar se o 'kdesdk-kioslaves' não estiver instalado, mas usa o &kdesvn;::KIO::svn.

#### Lista de comandos

#### Visão geral dos comandos do `KIO::ksvn::special`

Nome do comando | ID numérico | Lista de parâmetros | Implementado na versão actual?
Checkout | 1 | KURL repositorio, KURL destino, int numVersao, QString tipoVersao O destino não será modificado ⪚, mas o conteúdo será extraído sem criar uma sub-pasta! Por exemplo, a origem poderá estar em `http://servidor/repos/projecto/trunk`, o destino em `/home/utilizador/projecto/` e o conteúdo de 'trunk' será copiado para `/home/utilizador/projecto/` e não para `/home/utilizador/projecto/trunk/`! | Sim
Update | 2 | KURL url, int numVersao, QString textoVersao Se o numVersao < 0, é processado o 'textoVersao'. O formato do 'textoVersao' está descrito no Apêndice. | Sim
Commit | 3 | KURL::List urls O parâmetro 'urls' é uma lista com os URL's locais a enviar. Irá pedir a mensagem de registo. | Sim
Log | 4 | int numVersaoInicial, QString textoVersaoInicial, int numVersaoFinal, QString textoVersaoFinal, KURL::List Use isto com cuidado - poderá produzir uma grande quantidade de dados. | Sim
Import | 5 | KURL repositorioDestino, KURL localOrigem | Sim
Add | 6 | KURL | Sim
Del | 7 | KURL::List | Sim
Reverter | 8 | KURL::List A reversão no KIO é sempre não-recursiva e sem quaisquer confirmações (a invocação da aplicação deverá fazê-lo por si) | Sim
Status | 9 | KURL item, bool verificarRepo, bool recursivo item - o item para o qual obter as informações, verificarRepo - verifica se existem versões mais recentes no repositório, recursivo - a verificação é recursiva ou não. | Sim
Mkdir | 10 | KURL::List | Sim
Resolve | 11 | KURL, bool recursivo | Sim
Switch | 12 | KURL pasta_copia_local, KURL url_novo_repositorio, bool recursivo, int numeroVersao, QString tipoVersao | Sim
Diff | 13 | URL uri1, KURL uri2, int r1, QString rtexto1, int r2, QString rtexto2, bool recursivo Para as diferenças entre repositórios locais, use o protocolo 'file:///'. Para as diferenças entre cópias locais, defina os URL's sem protocolo! | Sim

#### Valores devolvidos

Os valores devolvidos podem ser obtidos por meta-dados, veja a documentação da API para mais detalhes.

#### Conteúdo dos meta-dados

Tecla | Valor possível
path | A localização do item sobre o qual foi feita a acção, ⪚ o URL indicado
action | O tipo de acção numérico
kind | O tipo de item (se é uma pasta ou um ficheiro)
mime_t | O tipo MIME do item no Subversion
content | O estado do conteúdo (valor do Subversion)
prop | O estado das propriedades (valor do Subversion)
rev | A versão resultante ou a versão manipulada
string | Uma mensagem interna e legível.
loggedaction | O texto da acção definida pelo Subversion sobre o item (A, M, D)
loggedcopyfrompath | Foi copiado a partir de que local? (pode ser vazio)
loggedcopyfromrevision | Foi copiado a partir de que versão? (poderá ser < 0)
loggedpath | Em que local individual a acção registada foi definida (a localização está definida com o URL de invocação)
diffresult | uma linha de resultado das diferenças

## Usar o &kdesvn; pela linha de comandos

### Introdução

Algumas operações do Subversion podem ser usadas pela linha de comandos, ⪚ como se fosse um cliente normal da linha de comandos, mas a interacção com o utilizador é feita através da UI do &kde;. A sintaxe normal é `kdesvn exec `comando` `parâmetro` `url``.

Se for desejada uma dada versão ou &URL; específicos, poderão ser definidos como um parâmetro do &URL;

    svn://o-seu-servidor/local-do-repositorio/item?rev=<a-sua-versão>

. Isto irá substituir o valor da opção `-r <versão>`.

Uma versão poderá ser indicada como um número, como uma das opções `HEAD` ou `BASE` ou ainda com um formato de data do tipo {AAAA-MM-DD}.

### Lista de comandos

Se na seguinte visão geral for passado o parâmetro possível `-r `versão``, esta mesma versão poderá ser definida como ``url`?rev=`a-versão``.

### Comandos do Subversion

Comando | Significado | Opções aceites
commit (ou ci) | envia as modificações do item para o repositório |
log | Imprime o histórico do item | -r ver-inicial:ver-final -l limitar_visualização
cat | Apresenta o conteúdo do item | -r versão
copy (ou cp) | Copia o item dentro da cópia local ou do repositório. Se não for indicado o destino, o &kdesvn; pedi-lo-á. |
move (ou mv, rename) | Move/muda o nome do item dentro da cópia local ou repositório. Se não for indicado o destino, o &kdesvn; pedi-lo-á. |
get | Obtém o conteúdo do item e grava-o | -r versão -o <ficheiro-saída> (este parâmetro é obrigatório!)
blame (ou annotate) | mostra o ficheiro anotado | -r ver-inicial:ver-final
actualizar | Actualiza o item na cópia local | -r versão
diff | Mostra as diferenças entre duas versões do item ou entre dois itens numa dada versão | -r ver-inicial:ver-final
info | Informações detalhadas sobre o item | -r versão
checkout (ou co) | Extrai o conteúdo de 'local-repositório' para uma nova cópia local. Poderão ser pedidos o local de destino e a versão original. |
checkoutto (ou coto) | Extrai o conteúdo do 'local-repositório' para uma nova cópia local. A diferença é que serão questionados o local de origem e a versão de origem. |
export | Exporta o repositório ou a cópia local para uma dada pasta. Serão pedidos o local de destino e a versão de origem. |
exportto | Exporta o repositório ou a cópia local para uma dada pasta. Serão pedidos o local de origem e a versão de origem. |
delete (del, remove, rm) | apaga os URL's indicados do repositório ou da cópia local. |
add | adiciona o &URL; à cópia local. O &URL; deverá pertencer a uma cópia local (não é uma importação!) |
revert (ou undo) | anula as alterações efectuadas sobre a cópia local. Poderá ser usado apenas para URL's de da cópia local! |
checknew (ou addnew) | procura no &URL; indicado por itens novos ou não-adicionados, adicionando-os à cópia local se o desejar. |
tree | mostra uma árvore de versões do item (só o primeiro argumento); se for indicado um &URL; com ?rev=`xxx`, esta versão será a versão de referência. | -r ver-inicial:ver-final
lock | bloquear os URL's indicados; se for indicado `-f`, então serão libertados os bloqueios existentes. | -f
unlock | desbloquear os URL's indicados; se for indicado `-f`, então serão libertados os bloqueios não pertencentes ao utilizador e os bloqueios inexistentes serão ignorados. | -f
help | mostra esta página |

### Parâmetro dos comandos do Subversion

Parâmetro | Valores possíveis | permitido para
`-r` | `versão` ou `ver-inicial:ver-final` | todos excepto o 'commit'
`-R` | (nenhuma) | todos excepto o 'commit'
`-o` | `ficheiro` | get
`-l` | `número` | log
`-f` | (nenhuma) | (un-)lock

#### O comando log

Este comando mostra uma janela que contém o histórico do &URL; indicado. Com o Subversion 1.2 ou posterior, poderá aceitar um limite &ie; quantos itens terá para apresentar.

Dentro desta janela, poderá seleccionar os itens do histórico e obter as diferenças entre eles.

##### Mostrar os últimos 20 registos do histórico

    kdesvn exec log -l 20 -r HEAD:1 o-meu-ficheiro.c

Tenha em atenção a ordem das versões: se desejar ir de HEAD para START, terá de indicar a versão HEAD como ponto inicial, caso contrário irá obter os primeiros 20 itens.

#### O comando diff

Irá obter as diferenças entre as versões de um item ou entre dois itens dentro da mesma cópia local ou repositório. Ao determinar as diferenças entre versões de um item, essas versões poderão ser indicadas como `-r `VERSÃO-INICIAL`:`VERSÃO-FINAL``. Ao ver as diferenças entre um item numa cópia local sem qualquer versão, irá mostrar as diferenças face ao repositório.

##### Imprime as diferenças face ao repositório, &ie; cópias locais

    kdesvn exec diff o-meu-ficheiro.c

##### imprime as diferenças entre versões

    kdesvn exec diff -r 21:20 o-meu-ficheiro.c

Ao determinar as diferenças entre dois itens, poderá indicar as versões dos itens ao &URL; dos mesmos, ⪚:

    http://servidor/local/item?rev=HEAD

##### Diferenças entre duas versões marcadas

    kdesvn exec diff http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_2 http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_3

## Configuração

As definições podem ser alteradas na janela de configuração. Estas estão separadas em algumas sub-janelas.

### Geral

Tamanho dos ícones da lista | Quão grandes deverão ficar os ícones na lista principal da aplicação
Mostrar a informação do ficheiro | Se deve mostrar uma pequena dica quando passar o cursor do rato sobre um dado item
Marcar o estado do item com um ícone sobreposto | Quando um item não estiver num estado normal do Subversion, poderá ter sobreposto um ícone de sinalização. (Ver em overlay-meaning)
A ordenação dos itens distingue maiúsculas/minúsculas | Se o critério de ordenação na janela principal deve fazer distinção entre maiúsculas e minúsculas, &ie;, se a é ou não igual a A.
Mostrar os ficheiros ignorados | Mostrar os itens marcados no Subversion para serem ignorados ou não.
Número máximo de mensagens do histórico | Quantas mensagens de registo histórico o &kdesvn; deverá recordar.
Mostrar a anotação colorida | Usar as cores definidas na janela de configuração das anotações.
Usar o painel de navegação | Activar/desactiva a visibilidade da árvore do repositório.

### Configuração do Subversion e de tarefas agendadas

### Subversion

Iniciar a verificação de actualizações ao abrir uma cópia local | Quando abre uma cópia local, inicia uma verificação por actualizações em segundo plano
Iniciar o preenchimento da 'cache' ao abrir | Se estiver activo, o &kdesvn; começa a preencher a 'cache' do histórico ao abrir um repositório ou cópia local, caso o &URL; do repositório não seja local (`file://`)
Verificar se os itens têm o svn:needs-lock activo | Verifica nas cópias locais se um dado item tem esta propriedade definida e, em caso afirmativo, mostra um ícone sobreposto especial. Se activa esta opção, tornará as listagens realmente lentas.
Obter os detalhes dos ficheiros nas listagens remotas | Quando estiver assinalado, o &kdesvn; irá obter mais informações detalhadas sobre os itens dos ficheiros ao criar uma listagem dos repositórios remotos. Assim poderá ver os bloqueios remotos na visão geral. Tenha cuidado: Isto poderá tornar as listagens REALMENTE lentas!
Ler de forma recursiva as informações dos ficheiros | Se estiver activo, a informação das pastas irá obter informações sobre todos os itens abaixo, o que se poderá tornar demasiado lento.
Guardar as senhas das ligações remotas | O armazenamento de senhas é normalmente um problema de segurança. O Subversion guarda as suas senhas num ficheiro simples, &ie;, senhas em texto simples! Por isso, tenha cuidado em activar esta opção, vendo também o item a seguir. Este item só diz que a gravação das senhas está activa por omissão; podê-la-á modificar para domínios específicos na janela de autenticação.
Guardar as senhas na Carteira do KDE | Ao gravar as senhas, o ficheiro de texto simples do Subversion é uma falha de segurança. O &kdesvn; é capaz de as gravar na carteira encriptada do &kde; (desde a versão 0.12.0) e usá-las daí. Por outro lado, os outros clientes de Subversion não são capazes de as ler, pelo que as deverá introduzir se usar algumas ferramentas como o svn pela linha de comandos ou o rapidsvn. Dado que o Subversion não encripta as senhas, deverá pensar duas vezes sobre o assunto.
Usar a 'cache' interna de senhas | Quando uma senha não está guardada de forma persistente, o &kdesvn; poderá guardá-la até que o &kdesvn; termine, para que não tenha de a introduzir de novo em cada operação. A 'cache' nunca é persistente, &ie;, não será gravada em lado nenhum.
O registo segue as mudanças de nós | Se estiver assinalado, o registo histórico segue as operações de cópia.
O registo lê sempre a lista de ficheiros alterados | O comando de histórico poderá ler uma lista dos ficheiros alterados no envio. Isto é útil e, na maioria dos casos, não irá custar mais tráfego de rede.
Rever os itens antes do envio | Ao efectuar um envio, o &kdesvn; poderá verificar o que fazer. Por exemplo, se tiver itens não-adicionados que possam ser adicionados, os itens da lista mudam e a operação actual irá enviar essas modificações. Isso irá custar, dependendo da estrutura, mais ou menos tempo.
Esconder os itens novos na janela de envio | Se os itens não-adicionados deverão aparecer na janela de envio ou não.
A actualização modifica em vez de gerar conflitos | Se estiver activa, uma adição local no mesmo sítio em que virá uma adição do mesmo tipo de nó do repositório irá resultar num nó normal com uma possível modificação local, em vez de um conflito da árvore.
A actualização cria os pais em falta | Se estiver activo, cria também as pastas não existentes, marcando-as com profundidade=vazia

### Tarefas periódicas

Verificar os itens modificados a cada N segundos Verificar os itens actualizados a cada N segundos | Se estiver activo verifica, a um ritmo periódico, os itens actualizados ou modificados na cópia local quando a rede está activa

### Diferenças & Reunião

As diferenças ignoram o tipo de conteúdo

- Só é interessante se as diferenças forem feitas com o próprio Subversion. Quando estiver activo, o Subversion ignora o tipo de conteúdo dos itens nas diferenças. Caso contrário, não irá mostrar as diferenças nos ficheiros binários.

As diferenças na árvore de versões são recursivas

- Quando estiver activo, as diferenças analisadas dentro da árvore de versões serão feitas de forma recursiva como nos outros casos. Caso contrário, só serão feitas as verificações nos itens da pasta actual. Como isso é feito, depende de como gera as diferenças (pelo Subversion em si ou pelos visualizadores externos).

As diferenças ignoram as mudanças de espaços em branco

- Ignora a quantidade de espaços em branco (opção `-b` no diff)

As diferenças ignoram todos os espaços em branco

- Ignorar todos os espaços em branco (opção `-w` do diff)

Preferir um programa de junção externo

- Active se for preferível a junção com um programa externo em vez do do Subversion

Usar o formato de diferenças do Git

Mostrar as cópias como adições

#### Usar uma visualização de diferenças externa

Selecciona uma aplicação externa para mostrar as diferenças. Por omissão é usado o &kompare;.

#### Visualização externa das diferenças

Define o que o &kdesvn; usa para a visualização externa e como será chamado. Existem três formas:

<programa> <parâmetro>

- A diferença será gerada com o Subversion e será colocada directamente como dados de entrada do programa externo (&ie;, sem qualquer ficheiro temporário)

<programa> <parâmetro> %f

- A diferença será gerada com o Subversion, gravada num ficheiro temporário e o parâmetro `%f` será substituído por esse nome de ficheiro. Isto poderá ser usado, por exemplo, com uma simples chamada ao less ou a outro visualizador de texto.

<programa> <parâmetro> %1 %2

- O &kdesvn; permite ao programa externo criar as diferenças. O %1 e o %2 serão substituídos pelos valores obrigatórios (nomes dos ficheiros ou pastas). O &kdesvn; guarda o conteúdo a comparar num ambiente temporário (quando são pastas, efectua uma exportação, quando é um único ficheiro, efectua uma leitura), se necessário, e limpa esse ambiente após fechar o programa externo ou a si próprio.

Preferir um programa de junção externo

- Seleccione se na janela de reunião a opção Usar um programa externo deverá estar assinalada ou não por omissão.

#### Programa de reunião externo

Configura o programa e as opções para usar quando a reunião de versões incorporada do Subversion não é desejada. Por omissão, o valor é `kdiff3 %s1 %s2 %t`. A ordem das variáveis de substituição não é importante e poderão existir mais que uma vez, ⪚ em `kdiff3 -o %t %s1 %s2 %t`. Esta funcionalidade só foi testada com o meld e o &kdiff3;. Pense no facto de que os programas externos normalmente não conhecem alguns dos parâmetros para `ignorar` do Subversion, pelo que poderão mostrar mais do que o esperado.

##### Substituição de variáveis no programa de reunião externo

%s1

- Substituído pela origem 1.

%s2

- Substituído pela origem 2. Se estiver em branco ou se for igual à origem 1, do mesmo modo que a versão de início e de fim forem as mesmas, esta variável será ignorada. Por isso, tenha cuidado ao definir as linhas de comando do tipo `xxdiff --title1 %s1 --title2 %s2 %s1 %s2 %t`.

%t

- Substituído pelo destino.

#### Programa de resolução de conflitos

Poderá usar um programa externo como o &kdiff3; para resolver conflitos. Por omissão, o valor é `kdiff3 %o %m %n -o %t`.

##### Substituição de variáveis na resolução de conflitos externos

Entre parêntesis, a seguir a cada descrição, aparece um exemplo de como o Subversion iria chamar os ficheiros. O significado destas opções está desenhado para o &kdiff3;, porque neste momento é a única forma conhecida de suportar todos os parâmetros necessários para uma boa resolução de conflitos.

%o ou %l

- A versão antiga (local,esquerda). Isto corresponde ao número de versão menor, &ie; o ponto inicial das modificações em conflito. (`xpto.cc.r2`)

%m ou %w

- A sua versão (de trabalho), &ie; o que alterou face à versão antiga. (`xpto.cc.mine`)

%n ou %r

- A versão nova (remota,direita). Por exemplo, a versão que outra pessoa poderá ter feito (`xpto.cc.r3`)

%t

- O nome do destino, ⪚, o nome original. Para o &kdiff3; (por exemplo), seria o nome a seguir ao parâmetro `-o` (= ficheiro de saída). (`xpto.cc`)

### KIO / linha de comandos

Mostrar o registo após executar um comando

- Se deverá abrir uma janela com o registo do último comando de Subversion e quando foi feito pela linha de comandos ou pelo menu de acção do &konqueror;.

Mínimo de registos de histórico a mostrar

- Se a opção Mostrar o registo... estiver activa, qual será o número mínimo de linhas antes de uma destas janelas aparecer. Como tal, poderá definir que uma janela destas só será apresentada quando for gerado algum resultado interessante (um registo de envio ou algo do género).

Não mostrar o menu de contexto no &konqueror;

- Se estiver activo, não será criado nenhum item de menu de acção para o &kdesvn; no &konqueror;.

Não mostrar os itens no menu de acção de topo

- Se estiver activo, o kdesvn não irá mostrar as acções extra dentro do menu Acção do &konqueror; ou do &dolphin;.

As operações do KIO usam a mensagem de registo normal

- Ao efectuar operações sobre um repositório com o protocolo KIO do &kdesvn; dentro do &konqueror; (⪚, protocolos ksvn+...) em operações vastas, como a cópia ou mudança de local de pastas, o &kdesvn; iria pedir uma mensagem de registo para cada item). Isto é um comportamento do &konqueror;. Quando esta opção está activa, a implementação de KIO do &kdesvn; não irá pedir nenhuma mensagem de registo, mas irá sim usar uma mensagem-padrão ou mensagem normal de registo. Estas opções não afectam as operações do menu de acção do &kdesvn; para o &konqueror;, mas apenas as cópias/mudanças/criações de pastas/remoções feitas com o &konqueror; ou com outros gestores de ficheiros sobre um URL do KIO.

Mensagem normal

- A mensagem que o KIO do &kdesvn; deverá atribuir às operações dentro do &konqueror; quando a opção acima estiver activa. Por omissão, é usada a opção Versão feita com o KIO do &kdesvn;.

O KIO pode sobrepor

- Se esta opção estiver activa, irá ter um suporte de escrita simples para os itens existentes. ⪚ poderá abrir os ficheiros no seu editor e gravá-los directamente sem ter de os obter primeiro (o &kdesvn; fará isso em segundo plano).

  Use isto apenas se tiver a certeza do que está a fazer.

O KIO mostra as mensagens de progresso

- Se estiver activo, o KIO mostra no Plasma do KDE alguma informação detalhada sobre a operação em curso. As mensagens de erro do KIO serão sempre apresentadas e não podem ser desligadas.

## Referência de Comandos

### A janela principal do &kdesvn;

#### O Menu Ficheiro

&Ctrl;O Ficheiro Abrir

- Abre uma cópia de trabalho local ou um repositório previamente extraído

Ficheiro URL's abertos recentemente

- Este é um atalho para abrir os repositórios abertos recentemente. Se carregar neste item, irá abrir uma lista do lado do menu com diversas cópias locais ou repositórios abertos recentemente. Se carregar num item específico, abri-lo-á no &kdesvn;

&Ctrl;N Ficheiro Novo

- Abre uma janela com uma nova instância do &kdesvn;

Ficheiro Administração do Subversion

- Itens de menu com tarefas administrativas para os repositórios de Subversion, como por exemplo:

  - Criar e abrir um novo repositório
  - Guardar os dados do repositório num ficheiro
  - Replicar um repositório
  - Carregar um ficheiro de dados para um repositório
  Para mais informações, veja o resultado do comando `svnadmin --help`

&Ctrl;W Ficheiro Fechar

- Fecha o repositório ou cópia local aberto de momento

&Ctrl;Q Ficheiro Sair

- Sai do &kdesvn;

#### O Menu Favorito

Veja a ajuda do &konqueror;.

#### O Menu Subversion

#### Acções gerais do Subversion

&Ctrl;L Subversion Geral Histórico do item

- Mostra o registo histórico completo do item seleccionado de momento. Tenha cuidado, esta lista poderá ficar realmente grande!

&Ctrl; &Shift;L Subversion General Histórico do item sem cópias...

- Mostra o registo histórico do item seleccionado sem as cópias adjacentes.

&Ctrl;I Subversion Geral Detalhes

- Mostra informações detalhadas sobre os itens seleccionados

Subversion Geral Anotação

- Cria uma lista anotada de todas as modificações efectuadas. Isto poderá levar algum tempo!

Subversion Geral Anotação do intervalo

- Mostra as anotações de um dado conjunto de versões de um ficheiro.

Subversion Geral Mostrar a última versão

- Mostra o conteúdo da última versão desse item. (poderá ser diferente da versão da cópia local se estiver a trabalhar sobre uma!)

F2 Subversion Geral Mover

- Move ou muda o nome de um item dentro de uma cópia local ou de um repositório

&Ctrl;C Subversion Geral Copiar

- Copia o item dentro de uma cópia local ou de um repositório

Del Subversion Geral Apagar os ficheiros/pastas seleccionados

- Apaga os elementos seleccionados. Se estiver a trabalhar dentro de uma cópia local, deverá confirmar as suas remoções posteriormente.

Subversion Geral Nova pasta

- Cria uma nova pasta.

Subversion Geral Importar as pastas para o actual

- Selecciona as pastas que deseja importar para a pasta seleccionada de momento

Subversion Geral Extrair um repositório

- Cria uma nova cópia local de um repositório

Subversion Geral Exportar um repositório

- Exporta um repositório para o sistema de ficheiros, &ie; cria uma árvore de versões limpa e sem qualquer informação do Subversion.

Subversion Geral Bloquear os itens actuais

- Marca os itens actuais como bloqueados. Leia o manual do Subversion antes de usar esta opção!

Subversion Geral Desbloquear os itens actuais

- Remove as marcações de bloqueio dos itens actuais. Leia o manual do Subversion antes de usar esta opção!

#### Cópia local

Subversion Cópia local Actualizar para o HEAD

- Actualiza a cópia local para a última versão do repositório

Subversion Cópia local Actualizar para a versão...

- Actualiza a cópia local para uma dada versão do repositório

&Ctrl;# Subversion Cópia local Enviar

- Envia as modificações na cópia local dos itens seleccionados para o repositório.

&Ctrl;D Subversion Cópia local Diferenças das modificações locais

- Mostra as alterações locais como resultado das diferenças (sem acesso à rede). Esta é a diferença apenas ao último estado para o qual foi actualizada a cópia local, e não face à versão no repositório.

&Ctrl;H Subversion Cópia local Diferenças para o HEAD

- Mostra as diferenças da cópia local actual para a última versão no repositório.

&Ctrl;P Subversion Cópia local Propriedades

- Ver/editar as propriedades atribuídas ao item actual.

Insert Subversion Cópia local Adicionar os ficheiros/pastas seleccionados

- Adiciona os ficheiros e/ou pastas seleccionados ao controlo de versões.

Subversion Cópia local Reverter as alterações actuais

- Anula as últimas alterações efectuadas sobre a cópia local e actualiza para o último estado de actualização.

Subversion Cópia local Marcar como resolvido

- Marca os itens em conflito como resolvidos e remove os ficheiros associados aos conflitos.

Subversion Cópia local Reunir duas versões

- Reune duas versões dos itens na cópia local.

Subversion Cópia local Ignorar/Aceitar o item actual

- Edita a propriedade da pasta-mãe em relação ao item seleccionado de momento, de modo a que este item passe a ser ignorado pelo controlo de versões; caso contrário, remove-o da lista de itens a ignorar.

Subversion Cópia local Limpar

- Limpa a cópia local de quaisquer ficheiros de envio bloqueados, se existirem

Subversion Cópia local Mudar de repositório

- Muda o nó de topo da cópia local actual.

#### Repositório

Subversion Repositório Extrair a localização do repositório actual

- Cria uma cópia local a partir do item seleccionado de momento, se for uma pasta.

Subversion Repositório Exportar a localização do repositório actual

- Cria uma cópia limpa no sistema de ficheiros local do item seleccionado de momento, se for uma pasta.

#### Acções do 'Ver'

F5 Subversion Ver Actualizar a janela

- Actualiza o estado actual de todos os itens apresentados. Isto irá apresentar todos os itens com o estado actual.

Subversion Ver Expandir/Fechar a Árvore de Ficheiros

- Expande ou recolhe a árvore de repositórios.

Subversion 'Cache' do Registo Parar a actualização da 'cache' do histórico

- O registo histórico fica em 'cache' e é usado para mostrar a árvore de versões de um repositório. Dependendo da ligação à Internet, do tamanho do repositório de Subversion e do tamanho do histórico, isto poderá levar muito tempo. Como tal, poderá parar de actualizar a 'cache' com esta acção.

Subversion Geral Adicionar identidades do SSH ao ssh-agent

- Grava a sua senha da chave de SSH para a sua sessão actual, para que não seja mais necessário introduzir a sua senha.

#### O Menu Base de Dados

Base de Dados Mostrar o conteúdo da base de dados

- Apresenta uma visão geral sobre o conteúdo da base de dados da 'cache' para os repositórios conhecidos e permite apagar a 'cache' ou o repositório e aceder às definições do mesmo.

Base de Dados Configuração do repositório actual

- Mostra uma janela para adaptar a configuração da 'cache', dos registos e das estatísticas.

#### Os Menus de Configuração e Ajuda

À parte dos menus de Configuração e Ajuda comuns do &kde;, descritos nas secções dos menus de Configuração e Ajuda dos Fundamentos do &kde;, o &kdesvn; tem este item de menu adicional:

Configuração Configuração rápida

- Carregar o último URL aberto no arranque

- Volta a carregar o último URL aberto, caso não tenha sido indicado nenhum na linha de comandos.

Os registos seguem as mudanças dos nós

Mostrar os ficheiros ignorados

- Mostrar os itens marcados no Subversion para serem ignorados ou não.

Mostrar os ficheiros desconhecidos

- Mostrar os ficheiros por adicionar ao repositório do Subversion.

Esconder os ficheiros inalterados

- Use esta acção para mostrar apenas os ficheiros alterados, dando uma visão geral clara e concisa.

Modo ligado

- Se trabalhar desligado da rede, a 'cache' do registo histórico não será actualizada, pelo que o histórico em 'cache' poderá ser diferente do real.

## Créditos, Licença e Agradecimentos

Programa com 'copyright' 2005-2009 de &Rajko.Albrecht; &Rajko.Albrecht.mail;

Muito obrigado aos contribuintes:

- Andreas Richter ar@oszine.de - pela versão para Qt4 do 'svnqt'

- Michael Biebl biebl@teco.edu - por uma enorme ajuda, ideias, implementação e sugestões.

- Bram Schoenmakers bramschoenmakers@kde.nl - para sugestões específicas do &kde;, pela tradução para holandês e pela limpeza do código do autor.

E obrigado para todos os tradutores e por todas as reacções positivas e negativas. Foi uma ajuda preciosa.

Se quiser enviar a sua própria tradução para o &kdesvn; e poder precisar de ajuda, leia por favor a página de Localização do &kde; ou pergunte na lista de correio em kde-i18n-doc@kde.org.

Documentação com 'copyright' 2005-2006 de &Rajko.Albrecht; &Rajko.Albrecht.mail;

Tradução de José Nuno Pires zepires@gmail.com

&underFDL; &underGPL;

## Sintaxe das versões

As versões poderão ser indicadas no mesmo formato que o do cliente svn normal. Isto significa, números, palavras-chave ou datas.

Número

- Um número maior ou igual a -1. -1 significa versão não definida, enquanto o 0 é a versão inicial. Normalmente estes números não deveriam ser usados (a maioria das operações será mal sucedida com elas).

Palavra-Chave

- Uma das

  - HEAD

  - BASE

  - COMMITED

  - PREV

  - START

  - LOCAL

  As palavras-chave distinguem entre maiúsculas e minúsculas! Por exemplo, 'head' não é o mesmo que 'HEAD'.

Data

- Data no formato {AAAA-MM-DD}. Deverá ter mesmo dois dígitos em MM ou DD - ⪚ 2005-1-1 dever+a ser escrito como {2005-01-01}.

A adição de uma versão específica a um &URL; será sempre feita através de ?rev=`versão`.

&documentation.index;