Manual do kdesvn

# Manual do kdesvn

Rajko Albrecht `<ral@alwins-world.de>`

Tradução: André Marcelo Alvarenga
revisão 0.4 (05/07/2013)

Copyright © 2005, 2008 Rajko Albrecht

Nota Legal

kdesvn - um cliente subversion para o KDE.

Lista de Tabelas

2.1. Propriedades de integração com sistemas de gerenciamento de erros
3.1. Visão geral dos comandos do `KIO::ksvn::special`
3.2. Conteúdo dos metadados
4.1. Comandos do Subversion
4.2. Parâmetro dos comandos do subversion

Lista de Exemplos

3.1. Obtendo as diferenças entre as revisões com o KDiff3 e o KIO::ksvn
4.1. Mostrar os últimos 20 registros de envio
4.2. Mostra as diferenças em relação ao repositório, isto é, alterações locais
4.3. Mostra as diferenças entre as revisões
4.4. Diferenças entre duas revisões marcadas

Capítulo 1. Introdução
Introdução

# Capítulo 1. Introdução

O kdesvn é um cliente subversion para o KDE.

Você precisar ter algum conhecimento sobre o subversion, mas, felizmente, a maioria dos itens são autoexplicativos.

Os relatórios de erros e solicitações de novas funcionalidades podem ser enviados através do Sistema de gerenciamento de erros do KDE.

## Termos

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

Repositório

  Central de armazenamento de dados. Pode ser um banco de dados ou um sistema de arquivos simples. Sem os clientes especiais, você não poderá ler os dados nele contidos. O kdesvn é um cliente para repositórios do Subversion.

Cópia de trabalho

  Uma cópia simples de um repositório no sistema de arquivos local. Esta é usada com qualquer gerenciador de arquivos normal, editando arquivos, etc. As informações do RCS podem ser lidas com clientes como o kdesvn.

  Lembre-se de que o subversion não sabe nada sobre o KIO, sendo necessário que a cópia local esteja em uma área onde possa ser acessada sem qualquer protocolo específico, por exemplo, “fish://” ou algo do gênero não será possível.

WebDav

  WebDAV é um protocolo que lhe permite modificar arquivos em um servidor Web remoto. O Subversion é um tipo especial de WebDAV quando os repositórios são acessados a partir de um servidor Web. Em uma utilização normal, este modo é apenas para leitura. Com configurações especiais, você poderá obter um WebDAV ativo para leitura e gravação que poderá acessar com um navegador especializado. O kdesvn NÃO é um cliente WebDAV, mas o Konqueror é através do seu protocolo “webdav://”. Contudo, com o kdesvn você poderá navegar pela árvore de versões de um repositório (através de “http://”)

Capítulo 2. Usando o kdesvn
Usando o kdesvn

# Capítulo 2. Usando o kdesvn

## Funcionalidades do kdesvn

O kdesvn consegue usar os seguintes protocolos para navegar pelos repositórios:

http

  Protocolo padrão de navegação Web.

https

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

(k)svn+http

  Protocolo padrão de navegação Web. Pode ser usado para deixar que o Konqueror chame o kdesvn automaticamente.

(k)svn+https

  Protocolo padrão de navegação Web segura. Pode ser usado para deixar que o Konqueror chame o kdesvn automaticamente.

(k)svn+file

  Protocolo de repositórios locais. Pode ser usado para deixar que o Konqueror chame o kdesvn automaticamente.

(k)svn

  Protocolo do próprio do servidor do Subversion.

(k)svn+ssh

  Subversion sobre SSH. Veja as Perguntas frequentes para obter alguns detalhes especiais deste protocolo.

file

  Acesso direto ao repositório. O kdesvn verifica se um determinado caminho é um repositório ou uma cópia de trabalho e abre-o no modo correto. Para o Subversion, o `file:///pasta` e `/pasta` não são a mesma coisa!

Esta lista também pode ser usada para as URLs indicadas através da linha de comando.

Introdução ao subversion e ao kdesvn
Introdução ao subversion e ao kdesvn

## Introdução ao subversion e ao kdesvn

Esta seção é principalmente para iniciantes não familiarizados com o subversion e explica como o subversion e/ou os sistemas de controle de versão (RCS) funcionam.

### Criando uma cópia de trabalho

### Cuidado

As cópias de trabalho DEVEM estar acessíveis em caminhos locais. O Subversion não reconhece os pseudo-sistemas de arquivos como `smb://` ou `fish://`. Se possível, o kdesvn traduz alguns deles (como o `system:/home`), mas não é possível fazê-lo pela rede.

Primeiro você deverá criar uma cópia de trabalho do seu repositório. Para isso, selecione a opção Subversion → Geral → Extrair um repositório. Dentro da caixa de diálogo seguinte, você deverá indicar a URL do repositório que deseja usar, por exemplo, `http://localhost/repos/meu-projeto`. Também é possível obter subpastas de um repositório, por exemplo, `http://localhost/repos/meu-projeto/trunk` ou algo do gênero.

Selecione e/ou crie uma pasta local, onde será colocada a cópia de trabalho.

Por último, a revisão que será obtida. Na maioria dos casos, será a “HEAD”. Isto garante que a última versão armazenada é a referenciada.

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

Quando tiver aberto um repositório para navegação, poderá marcar uma pasta e então selecionar a opção Subversion → Repositório → Obter o caminho do repositório atual e preencher as caixas de diálogo como descrito acima. Dessa forma, apenas o caminho marcado será extraído.

### Enviando as alterações locais

Marque o item ou itens que deseja enviar e selecione Subversion → Cópia de trabalho → Commit (Ctrl+#)

Se tentar enviar sem qualquer item selecionado, o kdesvn irá usar o elemento de topo da cópia de trabalho aberta, isto é, o caminho da cópia de trabalho propriamente dito.

Esta operação é sempre recursiva, o que significa que, se você selecionar uma pasta, o kdesvn sempre irá enviar todos os itens alterados a partir dela. Quando definir que deseja rever todos os itens antes de enviar, na caixa de diálogo seguinte irão aparecer todos os arquivos que o kdesvn iria enviar. Assim você poderá desmarcar os itens que não deseja enviar. Nesse caso, o kdesvn envia todos os itens separados, isto é, de forma não recursiva. Poderá também selecionar os itens ainda não adicionados para enviá-los (se não estiverem marcados para ser ignorados). Assim você poderá ver se não existem itens mais recentes que se tenha esquecido.

Indique uma mensagem de registro do que você deseja enviar e clique OK para que a transferência se inicie.

### Atualizar a cópia de trabalho

Isto volta a colocar a sua cópia de trabalho em sincronia com o repositório. Você pode configurar o kdesvn para verificar os itens novos/modificados no repositório, ao abrir uma cópia de trabalho. Isso irá funcionar em segundo plano e você poderá continuar a trabalhar no kdesvn. Quando terminar, os itens ou pastas com itens com versões mais recentes serão marcados.

Para obter as alterações, selecione a opção Subversion → Cópia de trabalho → Atualizar para a última versão. Isso irá atualizar os dados para a última versão no repositório. Se quiser obter uma revisão específica, selecione a opção Subversion → Cópia de trabalho → Atualizar para a revisão e selecionar a revisão que deseja no campo seguinte.

Se nenhum item estiver selecionado, a atualização será feita em toda a cópia de trabalho aberta, caso contrário, só será recursiva para os itens selecionados.

### Adicionando e excluindo na cópia de trabalho

Ambas as operações necessitam de dois passos: Primeiro, adicione ou exclua e depois envie essas alterações para o repositório. Antes de enviá-las, você poderá desfazer a adição ou exclusão.

#### Adicionar itens

A adição de itens a uma cópia de trabalho pode ser feita de três formas:

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

  Copie com o Konqueror ou outra ferramenta qualquer para a área da cópia de trabalho. Percorra a lista, marque os itens e selecione a opção Subversion → Cópia de trabalho → Adicionar os arquivos/pastas selecionados (Insert). Quando quiser adicionar novas pastas, com todos os seus subitens, selecione a opção Subversion → Cópia de trabalho → Adicionar recursivamente os arquivos/pastas selecionados (Ctrl+Insert).

Verificar e adicionar de forma recursiva

  Você poderá verificar se existe algo na cópia de trabalho que não esteja adicionado ao repositório. Depois de selecionar a opção Subversion → Cópia de trabalho → Verificar por itens não adicionados, irá aparecer uma caixa de diálogo onde todos os itens não adicionados serão apresentados. Se clicar em OK, todos os itens marcados serão adicionados à cópia de trabalho, sendo que os itens que não desejar adicionar deverão estar desmarcados antes.

Arrastar e soltar

  Marque no Konqueror ou em outro navegador de arquivos compatível, os itens que você deseja adicionar e arraste-os para o kdesvn. Você pode soltá-los nas pastas dentro da cópia de trabalho aberta e então o kdesvn irá copiar os itens soltos para ela e adicioná-los.

#### Excluindo os itens da cópia de trabalho e do controle de versões

A exclusão de itens é sempre recursiva. Por exemplo, quando excluir uma pasta, todos os seus subitens também serão excluídos. Marque o que deseja e selecione o item de menu Subversion → Geral → Excluir os arquivos/diretórios selecionados. Os itens sairão do controle de versões e serão excluídos do disco.

### Mostrando os registros

O registro pode ser iniciado com Ctrl+L quando um ou mais itens estiver marcado na visão geral. Dependendo da sua configuração (veja em “Configurações do Subversion”), o kdesvn irá obter os mesmos itens de registro que começam em “HEAD” e os apresenta.

#### A caixa de diálogo de apresentação do registro

Do lado esquerdo, você verá a lista de itens de registro que o kdesvn recebeu. A mensagem de registro é reduzida a uma linha para caber. A mensagem completa aparece na janela superior direita ao marcar um item. Na janela inferior direita, você verá a lista de arquivos alterados. Estas janelas somente aparecem se essa lista foi transferida, dependendo da sua configuração.

Com os botões acima você poderá selecionar outro intervalo de registros para mostrar.

### Importante

Este intervalo é chamado sem qualquer limite prévio e, por isso, você precisa ter cuidado com repositórios grandes.

Os botões abaixo mostram sempre o trabalho sobre o item selecionado para registro, não sobre o item selecionado na lista de arquivos alterados. Por isso, quando clicar em Diferenças para o anterior, será apresentada a diferença de todos os itens alterados nesta revisão, caso sejam equivalentes ou estejam abaixo do item subversion selecionado para obter os registros anteriores. O mesmo acontece para o Diferenças entre as revisões.

`Anotar` obviamente só funciona se o item a registrar for um arquivo.

Em todos os itens da lista (ambas as listas) existirá um menu de contexto ativo para algumas operações extras. Na lista da esquerda, este será o Definir a versão do lado esquerdo das diferenças (isto é, revisão de início) e Definir a versão do lado direito das diferenças (isto é, fim ou destino das diferenças). Nas diferenças unificadas, a parte fica marcada com um `+++`). Se tiver selecionado estas revisões, elas aparecerão marcadas com algumas pequenas setas.

Trabalhando com os repositórios
Trabalhando com os repositórios

## Trabalhando com os repositórios

A navegação simples pelo repositório poderá ser feita com o Konqueror, Dolphin ou outros navegadores de arquivos similares: Abra uma URL com o protocolo descrito em “Funcionalidades do kdesvn” (as variantes que começam com “k”), para que estas apresentem o conteúdo. Por isso, as operações simples como cópia, mudança de local e exclusão poderão funcionar. Ao adicionar uma pesquisa do tipo “?rev=`xxx`” a listagem virá de uma revisão específica. O formato da pesquisa por revisões está descrito em Apêndice A, Sintaxe das revisões, sendo que algumas informações sobre o KIO::ksvn podem ser consultadas em Capítulo 3, Konqueror, KIO, kdesvn

Todo o trabalho, exceto o Copiar, só poderá ser feito quando navegar pela revisão HEAD.

### Restaurando os itens excluídos

No subversion, a restauração de itens excluídos é uma operação de cópia do item para uma determinada revisão. Por isso, quando pensar em restaurar arquivos, veja o repositório na revisão anterior à exclusão do item. Selecione Subversion → Repositório → Selecionar a revisão a navegar e indique a revisão desejada. Agora o kdesvn mostra o conteúdo até este ponto. Marque o item que deseja restaurar e selecione a opção Subversion → Geral → Copiar (C). Dentro da caixa de diálogo seguinte, o destino está sempre na revisão HEAD (a última), a origem está na versão que vocês escolheu para navegar. Preencha o caminho de destino, clique em OK e inicie a cópia. Após o sucesso da operação, volte a colocar a navegação na revisão HEAD, para que apareça o item restaurado.

### Importando pastas

Devido a restrições do próprio subversion, apenas pastas podem ser importadas - os arquivos individuais não são permitidos.

#### Com arrastar e soltar

Marque em qualquer gerenciador de arquivos compatível a pasta que deseja importar e arraste-a para o item da pasta no kdesvn onde deseja importá-la.

#### Selecionar a pasta a importar com o navegador de diretórios

Marque a pasta para onde deseja importar uma pasta nova. Depois, selecione a opção Subversion → Geral → Importar diretórios no atual e selecione a sua pasta desejada.

Outras operações
Outras operações

## Outras operações

### Mesclar

Abra o repositório ou a cópia de trabalho, marque o item que deseja mesclar e selecione a opção Subversion → Geral → Mesclar. Digite na caixa de diálogo seguinte os valores que pretende. Se for aberto a partir de um repositório, a origem 1 e a origem 2 estarão preenchidos; se for aberto a partir de uma cópia de trabalho, o destino estará preenchido com o item atualmente selecionado. 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 deve ser SEMPRE um arquivo ou pasta local. Você poderá alternar entre uma mesclagem interna ou externa com a opção Usar mesclagem externa.

#### Mesclagem interna

O significado é exatamente o mesmo da ferramenta de linha de comando própria do subversion. Quando a origem1 e a origem2 forem 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 de trabalho, caso contrário, o subversion 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 ativa, os itens não-relacionados serão tratadas como se fossem. Caso contrário, o subversion irá remover um lado e adicioná-lo ao outro lado novamente.

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

  Se não estiver definido e se a mesclagem precisar excluir um item modificado ou não-adicionado, a mesclagem do subversion não funcionará. Caso contrário, esses itens serão excluídos.

Apenas executar como teste sem modificação

  Se estiver ativo, o subversion envia apenas a notificação do que iria fazer, mas não modifica a cópia de trabalho.

#### Usando um programa de mesclagem externo

Veja mais detalhes “Diferenças e Mesclagem” para configurar a ferramenta de mesclagem externa. O kdesvn gera a linha de comando como está descrito ali. Antes disso, ela faz o seguinte:

1. Atribui a revisão inicial como revisão da origem 1 e a revisão final à origem 2. Depois, verifica se elas são diferentes (caminho e/ou revisão). Caso afirmativo, será feita uma mesclagem em três-pontos, senão será uma mesclagem simples entre a origem e o destino. Se a origem 2 estiver em branco, será também uma mesclagem simples.

2. Faça uma exportação para uma pasta temporária. Se for uma mesclagem simples, só existe a revisão inicial de origem 1, caso contrário, serão usadas ambas as origens com suas revisões. Se o item for um arquivo e não uma pasta, então obtém o conteúdo de uma revisão específica.

3. Gera a chamada para o seu programa de mesclagem externo, tal como definido nas Configurações. O resultado do erro será apresentado na janela de registro, para que você possa ver o que está acontecendo de errado (se algo estiver errado).

Nas diferenças com um destino de mesclagem interno, um arquivo/pasta fora do controle de versões não aparecerá porque as ferramentas externas irão ignorá-lo.

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

### Resolvendo conflitos

O kdesvn propriamente dito não tem um módulo de resolução de conflitos, mas você pode usar aplicativos externos a partir do kdesvn. Em “Programa de resolução de conflitos” você encontra uma descrição de como configurar este aplicativo.

Ao marcar um item com o status definido como “em conflito” (você verá uma cruz vermelha nesses itens), você poderá selecionar a opção Subversion → Cópia de trabalho → 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 configurado (ou o padrão). Depois de concluir essa tarefa, você deverá marcar o item como resolvido (Subversion → Cópia de trabalho → Marcar como resolvido), caso contrário, não poderá enviar as suas alterações.

Propriedades usadas pelo kdesvn para configuração
Propriedades usadas pelo kdesvn para configuração

## Propriedades usadas pelo kdesvn para configuração

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

O projeto TortoiseSVN projetou um bom sistema de propriedades para integrar os sistemas de gerenciamento de erros para a interface do Subversion. Até este momento, o kdesvn não tem suporte a campos extra na área de envios (terá no futuro) e não compreende todas as propriedades, exceto as seguintes:

Tabela 2.1. Propriedades de integração com sistemas de gerenciamento de erros

Propriedades | Descrição | Exemplo
--- | --- | ---
`bugtraq:url` | Guarda a URL do sistema de gerenciamento de erros. Ela terá que 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 apenas uma expressão estiver definida, então o ID básico do erro deverá ter correspondência nos grupos do texto da expressão regular. Se estiverem definidas 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 (por exemplo, “Erro #123” ou “resolve o erro 123”). A segunda expressão será então usada para extrair o ID básico do erro a partir do texto extraído com a primeira expressão.

Tenha cuidado para não incluir espaços após a expressão regular e não se esqueça dos parênteses em torno da descrição do número.

Único (pode ser usado com o TRAC):

    #(\d+)

Agora todos os números do tipo `#190` serão processados e traduzidos para uma URL na saída do registro.

Duas expressões:

    [Ii]ssue #?(\d+)(,? ?#(\d+))*
    (\d+)

### Lembrar

Tenha cuidado com os espaços em branco após `(\d+)`! Esse é um dos erros mais comuns, quando as expressões não correspondem!

Nos repositórios locais abertos (isto é, no protocolo `file://`) e nas cópias de trabalho, estas propriedades serão pesquisadas de baixo para cima, a partir da pasta aberta, até que sejam encontradas ou que se chegue ao nível superior do repositório. Nos repositórios abertos pela rede (todos, exceto o protocolo `file://`), apenas a pasta aberta é pesquisada.

O suporte para vários conjuntos de propriedades deste tipo pode seguir mas tarde (por exemplo, na subpasta, os valores extras para outros sistemas de registro, etc.), mas na maioria dos casos, a avaliação de links exclusivos será suficiente.

Árvore de revisões
Árvore de revisões

## Árvore de revisões

A árvore de revisões tenta apresentar o histórico completo de um item, para que o usuário possa ter uma percepção melhor sobre o histórico de um item. Ele pode avaliar o registro completo do repositório, porque precisará de mais informações do que as fornecidas pelo Subversion. Como isso produz uma grande quantidade de tráfego, a árvore de revisões usa sempre o cache interno do registro.

### Requisitos

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

Cache interno do registro
Cache interno do registro

## Cache interno do registro

O kdesvn poderá usar um cache interno do registro para algumas operações. Na maioria dos casos é usado para a árvore de revisões, mas também ao ver o registro simplificado no modo desconectado. Os caches estão organizados como bancos de dados SQLite armazenados em `$HOME/.sqvnqt/logcache`. Cada arquivo numerado é um armazenamento de um repositório diferente.

### Atenção

Os bancos de dados poderão ficar enormes! Por isso, você poderá desativar a atualização automática do cache do registro nas configurações.

Você poderá simplesmente remover um banco de dados; aí, não será devolvido qualquer registro para esse repositório (nem qualquer árvore de revisões!), mas se não desativar a atualização automática do cache, ao abrir da próxima vez este repositório ou uma cópia de trabalho associada o mesmo será preenchido novamente.

### Modo desconectado

O kdesvn poderá funcionar sem acesso à rede, isto é, você pode desconectar-se da rede para usá-lo. Isso pode ser útil quando estiver trabalhando sem rede, como ocorre às vezes com notebooks. Nesses casos, o kdesvn sempre irá obter o histórico do cache interno. Até o momento (23/06/2008), esse registro está reduzido às funções básicas por razões técnicas, e o histórico em cache pode (mas não deve) ser diferente do registro real. Será diferente na medida que não mostrará todas as operações de cópia, mesmo que a opção O registro segue as alterações de nós esteja assinalada.

### O cache do histórico e a árvore de revisões

A árvore de revisões só usará o cache do histórico porque, se não fosse assim, teria que sempre obter os registros novamente. Não irá atualizar o cache (mas isto poderá ser alterado em versões posteriores).

Significado dos ícones sobrepostos
Significado dos ícones sobrepostos

## Significado dos ícones sobrepostos

Os itens podem ser marcados com ícones sobrepostos quando não estiverem em um estado “normal”.

  Este item está bloqueado. Na última coluna aparece o dono do bloqueio. Você também pode configurar se o kdesvn deverá procurar itens bloqueados no repositório. Porém, tenha cuidado: dependendo do tipo de servidor, isso poderá levar bastante tempo!

  Este item deve ser bloqueado antes de editar e enviar. Até que não defina um bloqueio, o Subversion mantém o item apenas para leitura.

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

  Este item ou - no caso de uma pasta - um subitem dele foi alterado no disco local

  Este item está adicionado localmente no Subversion, mas ainda não foi enviado.

  Este item está excluído localmente mo Subversion, mas ainda não foi enviado.

  Este item (ou item abaixo se for uma pasta) tem conflitos a serem solucionados com a última atualização.

O kdesvn e as senhas
O kdesvn e as senhas

## O kdesvn e as senhas

O kdesvn/Subversion é capaz de salvar senhas. O armazenamento de senhas é sempre um risco de segurança, mas torna uma interface gráfica mais fácil de usar.

### Não salvar senhas

É a forma mais segura, mas às vezes é difícil de trabalhar com interfaces como a do kdesvn. Em particular, os processos em segundo plano do kdesvn iriam sempre solicitar uma senha, no caso de o repositório ter acesso restrito para operações de leitura, como atualização e a leitura do status. O mesmo aconteceria no “envio” e assim por diante. Por isso, se você não salvar as senhas, deverá desativar a opção Iniciar a procura de atualizações na cópia de trabalho aberta, entre outras.

### Armazenamento de senhas no KWallet

O armazenamento de senhas seguro, usado por vários programas do KDE, como o KMail e o Konqueror. Se estiver salvando senhas e usar principalmente o kdesvn, deveria usar esta opção. Lembre-se de que o armazenamento criptografado não é totalmente seguro. Para mais detalhes, consulte a documentação do KWallet.

### Salvando no armazenamento de senhas próprio do Subversion

Isto não é recomendado, porque as senhas são armazenadas em texto simples! Não acredita? Olhe os arquivos em `~/.subversion/auth/svn.simple`. Você só deverá usar isso se usar com frequência outros clientes que não o kdesvn, como o rapidsvn, o esvn ou o cliente de linha de comando svn. Se estiver usando o cliente de linha de comando, principalmente para baixar ou fazer atualizações que não precisam de uma senha, e o kdesvn para enviar/mover/copiar, deveria usar o KWallet.

### Cache de senha interno

Você pode ativar um cache interno de senhas que irá armazenar as senhas enquanto o kdesvn estiver em execução na memória. Por isso, não precisará digitar uma senha duas vezes, mesmo que não esteja salva 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, você precisa ter acesso de ssh à máquina e repositório remotos. Quando quiser armazenar algo, deverá usar a autenticação com chave pública do ssh, não a autenticação com senha (de fato, o ssh prefere a autenticação com chave pública). Para isso, você deve colocar a sua chave pública de ssh no destino, por exemplo, o sistema do repositório. As senhas do SSH nunca serão tratadas pelo armazenamento de senhas do subversion, pelo KWallet ou pelo cache de senhas interno.

Se não quiser que a senha da sua chave de SSH seja solicitada, poderá usar o ssh-agent, selecionando a opção Subversion → Adicionar identidades SSH ao ssh-agent, e poderá armazenar a senha da sua chave de SSH durante a sessão atual, de forma que não seja necessário digitá-la novamente.

Capítulo 3. Konqueror, KIO, kdesvn
Konqueror, KIO, kdesvn

# Capítulo 3. Konqueror, KIO, kdesvn

## Descrição

Desde a versão 0.7.0, o kdesvn é disponibilizado com módulos que integram alguns comandos diretamente como menus do Konqueror.

Protocolos do KIO

  Implementa as rotinas para os seguintes protocolos:

  - ksvn+http

  - ksvn+https

  - ksvn+file

  - ksvn+ssh

  - ksvn

  O mesmo também pode ser dito para o “svn+...”, mas a partir do KDE 3.4, o kdesdk tem o seu próprio KIO SVN chamado “svn+http” etc. Sendo assim, os pacotes estão organizados dessa forma - ou o “svn+...” deveria vir como um pacote extra para instalação, caso o kdesdk não o tenha instalado.

  Estes protocolos foram projetados apenas para repositórios, não para cópias de trabalho. Por exemplo, o `ksvn+file:///`caminho`` deverá apontar para o início de um repositório diferente do aplicativo em si ou do KPart. As cópias de trabalho poderão exploradas com o Konqueror.

  Para escolher uma revisão específica, você pode adicionar a pesquisa “?rev=`revisão`” à URL.

Menus de contexto

  O kdesvn instala menus de contexto para o Konqueror. Eles poderão ser vistos com o botão direito na janela do navegador (apenas no modo normal, não em nenhum KPart), sendo possível efetuar as ações mais frequentes diretamente do Konqueror (ou em outros gerenciadores de arquivos que reconhecem os menus de contexto do Konqueror, como o Dolphin). Isso é feito através de uma chamada à variante para a linha de comando do kdesvn.

### Uso do KIO fora do Konqueror - um exemplo

Todos os aplicativos baseados no KDE podem usar esses protocolos. Assim, seria possível obter todas as diferenças entre duas revisões com o KDiff3 sem nenhum conhecimento profundo.

Exemplo 3.1. Obtendo as diferenças entre as revisõ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 mostrar todas as diferenças entre duas revisões.

### Nota

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

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

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

### Nota

Você pode ignorar isto se não estiver interessado em programação com o KIO.

O KIO::ksvn::special reconhece as operações a seguir, que são feitas de forma quase igual à existente no KIO do kdesdk. Assim, por exemplo, o KDevelop pode usá-lo se o kdesdk não estiver instalado, mas usa o kdesvn::KIO::svn.

### Lista de comandos

Tabela 3.1. Visão geral dos comandos do `KIO::ksvn::special`

Nome do comando | ID numérico | Lista de parâmetros | Implementado na versão atual?
--- | --- | --- | ---
Checkout | 1 | KURL repositório, KURL destino, int numRevisao, QString tipoRevisao O destino NÃO será modificado, mas o conteúdo será baixado sem criar uma subpasta! Por exemplo, a origem poderá estar em http://servidor/repos/projeto/trunk, o destino em /home/usuario/projeto/ e o conteúdo de 'trunk' será copiado para /home/usuario/projeto/ e não para /home/usuario/projeto/trunk/! | Sim
Atualizar | 2 | KURL url, int numRevisao, QString stringRevisao Se o numRevisao < 0, é processada a stringRevisao. O formato da stringRevisao está descrito no Apêndice. | Sim
Enviar | 3 | KURL::List urls O parâmetro 'urls' é uma lista com as URLs locais a enviar. Irá solicitar a mensagem de registro. | Sim
Log | 4 | int numRevisaoInicial, QString stringRevisaoInicial, int numRevisaoFinal, QString stringRevisaoFinal, KURL::List Use isto com cuidado - poderá produzir uma grande quantidade de dados. | Sim
Importar | 5 | KURL repositorioDestino, KURL caminhoOrigem | 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 confirmações (a chamada do aplicativo deve ser feita por ele mesmo) | 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 - verifica se é recursiva ou não. | Sim
CriarPasta | 10 | KURL::List | Sim
Resolver | 11 | KURL, bool recursivo | Sim
Switch | 12 | KURL caminho_copia_trabalho, KURL url_novo_repositorio, bool recursivo, int numeroRevisao, QString tipoRevisao | Sim
Diff | 13 | URL uri1, KURL uri2, int r1, QString rstring1, int r2, QString rstring 2, bool recursivo Para as diferenças entre repositórios 'file:///' e cópias de trabalho, configure as URLs da cópia de trabalho sem um protocolo! | Sim

### Valores devolvidos

Os valores devolvidos podem ser obtidos através de metadados. Consulte a documentação da API para obter mais detalhes.

Tabela 3.2. Conteúdo dos metadados

Chave | Valor possível
--- | ---
caminho | Caminho do item sobre o qual foi feita a ação, por exemplo, a URL indicada
ação | Tipo de ação numérico
tipo | tipo de item (se é pasta ou arquivo)
mime_t | Tipo MIME do item no Subversion
conteúdo | Estado do conteúdo (valor do Subversion)
prop | Estado das propriedades (valor do Subversion)
rev | A revisão resultante ou a revisão trabalhada
texto | Uma mensagem interna e legível.
loggedaction | A string da ação definida pelo Subversion sobre o item (A,M,D)
loggedcopyfrompath | Foi copiado a partir de qual caminho? (pode ficar em branco)
loggedcopyfromrevision | Foi copiado a partir de qual revisão? (pode < 0)
loggedpath | Em qual local individual a ação registrada foi definida (o caminho está definido com a URL de chamada)
diffresult | uma linha de resultado das diferenças

Capítulo 4. Usando o kdesvn pela linha de comando
Usando o kdesvn pela linha de comando

# Capítulo 4. Usando o kdesvn pela linha de comando

## Resumo

Algumas operações do subversion podem ser usadas através da linha de comando, por exemplo, como um cliente normal de linha de comando, mas a interação com o usuário é feita através da interface gráfica do KDE. A sintaxe padrão é `kdesvn exec `comando` `parâmetro` `URL``.

Se quiser uma determinada revisão ou URL, poderá ser definido como parâmetro da URL

    svn://seu-servidor/caminho-do-repositorio/item?rev=<sua-revisão>

. Isto irá sobrescrever o valor da opção `-r <revisão>`.

Uma revisã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
Lista de comandos

## Lista de comandos

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

Tabela 4.1. Comandos do Subversion

Comando | Significado | Opções aceitas
--- | --- | ---
commit (ou ci) | envia as modificações do item para o repositório |
log | Mostra o histórico do item | -r rev-inicial:rev-final -l limitar_exibição
cat | Apresenta o conteúdo do item | -r revisão
copy (ou cp) | Copia o item dentro da cópia de trabalho ou repositório. Se o destino não for indicado, o kdesvn irá solicitá-lo. |
move (ou mv, rename) | Move/renomeia o item dentro da cópia de trabalho ou repositório. Se o destino não for indicado, o kdesvn irá solicitá-lo. |
get | Obtém o conteúdo do item e salva-o | -r revisão -o <arquivo-saída> (este parâmetro é obrigatório!)
blame (ou annotate) | arquivo anotado | -r rev-inicial:rev-final
update | Atualiza o item na cópia de trabalho | -r revisão
diff | Mostra as diferenças entre duas versões do item ou entre dois itens em uma revisão específica | -r rev-inicial:rev-final
info | Informações detalhadas sobre o item | -r revisão
checkout (ou co) | Baixa o conteúdo do 'caminho-repositório' para uma nova cópia de trabalho. O caminho de destino e revisão de origem podem ser perguntados. |
checkoutto (ou coto) | Baixa o conteúdo do 'caminho-repositório' para uma nova cópia de trabalho. Será perguntado pela diferença do caminho de origem e a revisão de origem. |
export | Exporta o repositório ou a cópia de trabalho para um determinado diretório. Serão solicitados o caminho de destino e a revisão de origem. |
exportto | Exporta o repositório ou a cópia de trabalho para um determinado diretório. Serão solicitados o caminho de origem e a revisão de origem. |
delete (del, remove, rm) | exclui a(s) URL(s) indicadas a partir do repositório ou cópia de trabalho. |
add | adiciona a URL à cópia de trabalho. A URL deverá pertencer a uma cópia de trabalho (não é uma importação!) |
revert (ou undo) | desfaz as alterações efetuadas na cópia de trabalho. Pode ser usado apenas em URLs da cópia de trabalho! |
checknew (ou addnew) | procura na URL indicada, por itens novos ou não-adicionados, e os adiciona à cópia de trabalho se desejar. |
tree | mostra uma árvore de revisões do item (só o primeiro argumento), se for indicada uma URL com “?rev=`xxx`”, esta revisão será a de referência. | -r rev-inicial:rev-final
lock | bloqueia a(s) URL(s), se for indicado `-f`, então serão liberados os bloqueios existentes. | -f
unlock | desbloqueia a(s) URL(s), se for indicado `-f`, então serão libertados os bloqueios forem do usuário e os bloqueios inexistentes serão ignorados. | -f
help | mostra esta página |

Tabela 4.2. Parâmetro dos comandos do subversion

Parâmetro | Valores possíveis | permitido para
--- | --- | ---
`-r` | `revisão` ou `rev-inicial:rev-final` | todos exceto o 'commit'
`-R` | (nenhum) | todos exceto o 'commit'
`-o` | `nome do arquivo` | get
`-l` | `número` | log
`-f` | (nenhum) | (un-)lock

### O comando “log”

Este comando mostra uma janela que contém os registros da URL indicada. Com o Subversion 1.2 ou posterior, poderá aceitar um limite, isto é, quantos itens terá para apresentar.

Dentro desta janela você pode selecionar os itens do registro e obter as diferenças entre eles.

Exemplo 4.1. Mostrar os últimos 20 registros de envio

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

Cuidado com a ordem das revisões: Se desejar ir de HEAD para START, deve indicar a versão HEAD como ponto inicial, caso contrário, irá obter os primeiros 20 registros.

### O comando “diff”

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

Exemplo 4.2. Mostra as diferenças em relação ao repositório, isto é, alterações locais

    kdesvn exec diff meu-arquivo.c

Exemplo 4.3. Mostra as diferenças entre as revisões

    kdesvn exec diff -r 21:20 meu-arquivo.c

Ao determinar as diferenças entre dois itens, poderá indicar as revisões dos itens às suas URLs, por exemplo:

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

Exemplo 4.4. Diferenças entre duas revisõ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

Capítulo 5. Configurações
Configurações

# Capítulo 5. Configurações

As configurações podem ser alteradas na janela de configuração. Elas estão separadas em algumas subjanelas.

## Geral

Tamanho dos ícones da lista | Quão grandes deverão ficar os ícones na lista principal
Mostrar informações sobre o arquivo | Se uma pequena dica deverá aparecer quando passar o ponteiro do mouse sobre um item
Marcar o status do item com um ícone sobreposto | Quando um item não estiver em um estado normal do subversion, poderá ter uma sobreposição. (Consulte “Significado dos ícones sobrepostos”)
Ordenação de itens com diferença entre maiúsculas/minúsculas | Se o critério de ordenação na janela principal deve fazer distinção entre maiúsculas e minúsculas, isto é, se “a” é ou não igual a “A”.
Exibir os arquivos ignorados | Mostrar os itens marcados no subversion para serem ignorados ou não.
Número máximo de mensagens de registro no histórico | Quantas mensagens de registro o kdesvn deverá lembrar.

Configurações do Subversion
Configurações do Subversion

## Configurações do Subversion

Iniciar a procura por atualizações ao abrir uma cópia de trabalho | Quando abre uma cópia trabalho, inicia uma verificação por atualizações em segundo plano
Iniciar o preenchimento da cache ao abrir | Se estiver ativo, o kdesvn começa a preencher o cache do registro ao abrir um repositório ou cópia de trabalho, caso a URL do repositório não estiver atribuída como local (`file://`)
Verificar se os itens têm o “svn:needs-lock” ativo | Verifica nas cópias de trabalho se um item possui esta propriedade definida e, caso afirmativo, mostra um ícone sobreposto especial. Se ativar esta opção, tornará as listagens realmente lentas.
Obter os detalhes dos arquivos nas listagens remotas | Quando a opção estiver assinalada, o kdesvn irá obter informações mais detalhadas sobre os itens de arquivos ao criar uma listagem de repositórios remotos. Por isso, você poderá ver os bloqueios remotos na visão geral. Tenha cuidado: Isto poderá deixar as listagens MUITO lentas.
Ler de forma recursiva as informações dos arquivos | Se estiver ativo, a “informação” das pastas irá obter informações sobre todos os itens abaixo, mas poderá ficar muito lento.

Armazenar as senhas das conexões remotas

O armazenamento de senhas é normalmente um problema de segurança. O Subversion armazena as suas senhas em um arquivo simples, isto é, senhas em texto simples! Por isso, seja cauteloso ao ativar esta opção e também leia o próximo item. Este item apenas explica que a gravação das senhas está ativa por padrão, e você poderá alterar para domínios específicos na janela de autenticação.

Armazenar as senhas na carteira do KDE

Ao gravar as senhas, o arquivo de texto simples do subversion torna-se uma falha de segurança. O kdesvn é capaz de salvá-las na carteira criptografada do KDE (desde a versão 0.12.0) e também usá-las. Por outro lado, os outros clientes de subversion conseguem ler essas senhas, sendo necessário inseri-las com o uso de algumas ferramentas como o svn pela linha de comandos ou também o rapidsvn. Como o subversion não criptografa as senhas, você deve pensar duas vezes sobre o assunto.

Usar cache de senha interno | Quando uma senha não está armazenada de forma persistente, o kdesvn poderá guardá-la até que o kdesvn termine, para que não tenha inseri-la novamente em cada operação. Esse cache nunca é persistente, isto é, não será salva em nenhum lugar.
O registro segue as mudanças de nós | Se estiver assinalado, o registro segue as operações de cópia.
O registro sempre lê a lista de arquivos alterados | O comando de registro do histórico pode ler uma lista dos arquivos alterados no commit. Isso é útil e, na maioria dos casos, não irá gerar mais tráfego de rede.
Revisar os itens antes do envio | Ao efetuar um commit, o kdesvn poderá verificar o que fazer. Por exemplo, se tiver itens sem-versão que possam ser adicionados, os itens da lista mudam e a operação atual irá enviar essas modificações. Isso irá custar, dependendo da estrutura, mais ou menos tempo.

Diferenças e Mesclagem
Diferenças e Mesclagem

## Diferenças e Mesclagem

As diferenças ignoram o tipo de conteúdo

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

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

  Quando estiver assinalado, as diferenças analisadas dentro da árvore de revisõ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 atual. Como isso é feito depende de como as diferenças são geradas (pelo subversion em si ou pelos visualizadores externos).

As diferenças ignoram as alterações 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

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

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

Seleciona um aplicativo externo para mostrar as diferenças. Por padrão é usado o Kompare.

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

Define o programa 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 colocada diretamente como dados de entrada do programa externo (isto é, sem necessidade de arquivos temporários)

<programa> <parâmetro> %f

  A diferença será gerada com o subversion, salva em um arquivo temporário e o parâmetro `%f` será substituído por esse nome de arquivo. Isso poderá ser usado, por exemplo, com uma simples chamada ao less ou outro visualizador de texto.

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

  O kdesvn permite que o programa externo crie as diferenças. O %1 e o %2 serão substituídos pelos valores necessários (nomes dos arquivos ou pastas). O kdesvn armazena o conteúdo a comparar em um ambiente temporário (quando são pastas, efetua uma “exportação”, quando é um único arquivo, efetua uma “leitura”), se necessário, e limpa esse ambiente após fechar o programa externo ou a si próprio.

Preferir um programa de mesclagem externo

  Selecione se na janela de mesclagem a opção Usar mesclagem externa deverá estar assinalada ou não por padrão.

### Programa de mesclagem externo

Configura o programa e as opções para usar quando a mesclagem de revisões incorporada do subversion não é desejada. Por padrão, o valor é kdiff3 %s1 %s2 %t. A ordem das variáveis de substituição não é importante e poderão aparecer mais de uma vez, como por exemplo, `kdiff3 -o %t %s1 %s2 %t`. Esta funcionalidade só foi testada com o meld e o KDiff3. Considere que esses programas externos normalmente não conhecem alguns dos parâmetros para ignorar do subversion, e poderão mostrar mais do que o esperado.

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

%s1

  Substituído pela origem número um.

%s2

  Substituído pela origem número dois. Se estiver em branco ou se for igual à origem número um, do mesmo modo que a revisã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

Você pode usar um programa externo, como o KDiff3, para resolver conflitos, sendo que, por padrão, o valor é kdiff3 %o %m %n -o %t.

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

Após cada descrição, entre parênteses, é mostrado um exemplo de como o subversion iria chamar os arquivos. O significado destas opções está desenhado para o KDiff3, porque neste momento é o único aplicativo que tem suporte a 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 da revisão menor, isto é, o ponto inicial das modificações em conflito. (`foo.cc.r2`)

%m ou %w

  Sua versão (de trabalho) do arquivo, isto é, o que você alterou em relação à versão antiga. (`foo.cc.mine`)

%n ou %r

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

%t

  O nome do destino, por exemplo, o nome original. Para o KDiff3 (por exemplo), seria o nome após o parâmetro `-o` (= arquivo de saída). (`foo.cc`)

KIO/linha de comando
KIO/linha de comando

## KIO/linha de comando

Mostrar o registro após executar um comando

  Se deverá abrir uma janela com o registro do último comando do subversion, quando executado pela linha de comando ou pelo menu de ação do Konqueror.

Mínimo de linhas de registro para mostrar

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

Não mostrar o menu de contexto no Konqueror

  Se estiver assinalado, não será criado nenhum item de menu de ação para o kdesvn no Konqueror.

As operações do KIO usam a mensagem de registro padrão

  Ao efetuar operações sobre um repositório através do protocolo KIO do kdesvn dentro do Konqueror (isto é, protocolos “ksvn+...”) em operações extensas, como a cópia ou mudança de local de pastas, o kdesvn iria solicitar uma mensagem de registro para cada item. Este é um comportamento do Konqueror. Quando esta opção estiver assinalada, a implementação do KIO a partir do kdesvn não irá solicitar nenhuma mensagem de registro, mas irá usar uma mensagem padrão de registro. Estas opções não afetam as operações do menu de ação do kdesvn para o Konqueror, mas apenas as cópias/movimentações/criações de pastas/exclusões feitas com o Konqueror ou com outros gerenciadores de arquivos em uma URL do KIO.

Mensagem padrão

  A mensagem que o KIO do kdesvn deve atribuir às operações efetuadas dentro do Konqueror, quando a opção acima estiver assinalada. Por padrão, é usada a opção Revisão feita com o KIO do kdesvn.

Capítulo 6. Referência de comandos
Referência de comandos

# Capítulo 6. Referência de comandos

## Janela principal do kdesvn

### Menu Arquivo

Arquivo → Abrir (Ctrl+O)

  Abre uma cópia de trabalho local ou um repositório previamente baixado

Arquivo → Fechar (Ctrl+W)

  Fecha o repositório ou cópia de trabalho aberto

Arquivo → Sair (Ctrl+Q)

  Sai do kdesvn

### Menu Favorito

Leia a Ajuda do Konqueror.

### Menu Subversion

Subversion → Exibir → Atualizar a visualização (F5)

  Atualiza o status atual de todos os itens apresentados. Isto irá apresentar todos os itens com o status atual.

#### Ações gerais do subversion

Subversion → Geral → Histórico do item (Ctrl+L)

  Mostra o registro histórico completo do item que estiver selecionado. Tenha cuidado, esta lista poderá ficar realmente grande!

Subversion → Geral → Histórico do item sem cópias... (Ctrl+Shift+L)

  Mostra o registro histórico do item selecionado sem as seguintes cópias.

Subversion → Geral → Detalhes (Ctrl+I)

  Mostra informações detalhadas sobre o(s) item(ns) selecionado(s)

Subversion → Geral → Culpar

  Cria uma lista anotada de todas as modificações efetuadas. Isto poderá demorar algum tempo!

Subversion → Geral → Intervalo da anotação

  Mostra as anotações de um determinado conjunto de commits de um arquivo.

Subversion → Geral → Mostrar a última versão

  Mostra o conteúdo da última versão enviada desse item. (Pode ser diferente da versão da cópia de trabalho se estiver trabalhando sobre uma!)

Subversion → Geral → Mover (F2)

  Move ou renomeia um item dentro de uma cópia de trabalho ou no repositório

Subversion → Geral → Copiar (Ctrl+C)

  Copia o item dentro de uma cópia de trabalho ou no repositório

Subversion → Geral → Excluir os arquivos/diretórios selecionados (Del)

  Exclui os itens selecionados. Se estiver trabalhando dentro de uma cópia de trabalho, deverá enviar suas exclusões posteriormente.

Subversion → Geral → Nova pasta

  Cria uma nova pasta.

Subversion → Geral → Importar pastas para a atual

  Seleciona as pastas que deseja importar para a pasta que estiver selecionada

Subversion → Geral → Baixar um repositório

  Cria uma nova cópia de trabalho de um repositório

Subversion → Geral → Exportar um repositório

  Exporta um repositório para o sistema de arquivos, isto é, cria uma árvore de versões limpa e sem qualquer informação do subversion.

Subversion → Geral → Travar os itens atuais

  Marca os itens atuais como bloqueados. Leia o manual do subversion antes de usar isto!

Subversion → Geral → Destravar os itens atuais

  Remove as marcações de bloqueio dos itens atuais. Leia o manual do subversion antes de usar isto!

#### Cópia de trabalho

Subversion → Cópia de trabalho → Atualizar para a última revisão

  Atualiza a cópia de trabalho para a última versão do repositório (HEAD)

Subversion → Cópia de trabalho → Atualizar para a revisão...

  Atualiza a cópia de trabalho para uma determinada revisão do repositório

Subversion → Cópia de trabalho → Enviar (Ctrl+#)

  Envia as modificações dos itens selecionados na cópia de trabalho para o repositório.

Subversion → Cópia de trabalho → Diferenças das alterações locais (Ctrl+D)

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

Subversion → Cópia de trabalho → Diferenças para o HEAD (Ctrl+H)

  Mostra as diferenças da cópia de trabalho atual para a última versão no repositório.

Subversion → Cópia de trabalho → Propriedades (Ctrl+P)

  Exibir/editar as propriedades atribuídas ao item atual.

Subversion → Cópia de trabalho → Adicionar os arquivos/diretórios selecionados (Insert)

  Adiciona os arquivo e/ou pastas selecionados ao controle de versão.

Subversion → Cópia de trabalho → Reverter as alterações atuais

  Reverte as últimas alterações efetuadas na cópia de trabalho e atualiza para o último estado de atualização.

Subversion → Cópia de trabalho → Marcar como resolvido

  Marca os itens em conflito como resolvidos e remove os arquivos associados.

Subversion → Cópia de trabalho → Mesclar duas revisões

  Mescla duas revisões dos itens na cópia de trabalho.

Subversion → Cópia de trabalho → Ignorar/Não ignorar o item atual

  Edita a propriedade da pasta-mãe em relação ao item que estiver selecionado, de modo que este item seja ignorado pelo controle de versões, caso contrário, remove-o da lista de itens a ignorar.

Subversion → Cópia de trabalho → Limpeza

  Limpa a cópia de trabalho e remove os envios bloqueados, se existirem

Subversion → Cópia de trabalho → Alternar o repositório

  Muda a raiz da cópia de trabalho atual.

#### Repositório

Subversion → Repositório → Baixar o caminho do repositório atual

  Cria uma cópia de trabalho a partir do item que estiver selecionado, se for um diretório.

Subversion → Repositório → Exportar o caminho do repositório atual

  Cria uma cópia limpa no sistema de arquivos local do item que estiver selecionado, se for um diretório.

### O menu Ajuda

Ajuda → Manual do kdesvn (F1)

  Invoca o sistema de ajuda do KDE, iniciando nas páginas de ajuda do kdesvn. (este documento)

Ajuda → O que é isto? (Shift+F1)

  Muda o cursor do mouse para uma combinação de seta com um ponto de interrogação. Ao clicar nos itens do kdesvn uma janela de ajuda será aberta (se existir alguma para o item) explicando a função do item.

Ajuda → Relatar erro...

  Abre o diálogo para relatar erros onde você pode comunicar um erro ou “sugerir” uma funcionalidade.

Ajuda → Mudar o idioma do aplicativo...

  Abre uma caixa de diálogo onde você pode escolher o Idioma primário e o Idioma secundário para este aplicativo.

Ajuda → Sobre o kdesvn

  Mostra a versão e as informações do autor.

Ajuda → Sobre o KDE

  Mostra a versão do KDE e outras informações básicas.

### Barra de ferramentas Subversion

Abrir

  Abre uma cópia de trabalho local

Capítulo 7. Perguntas e respostas
Perguntas e respostas

# Capítulo 7. Perguntas e respostas

7.1. Ao usar o protocolo (k)svn+ssh, ele sempre solicita a senha novamente. Por que?
7.2. A solicitação da senha para o (k)svn+ssh aparece no terminal quando o kdesvn é iniciado a partir dele. Como desativo isso?
7.3. Como posso indicar uma porta ou usuário diferente no protocolo svn+ssh?
7.4. Ao verificar a existência de atualizações, o kdesvn não mostra nada, mas eu sei que existem itens mais recentes!
7.5. Ao iniciar o kdesvn, ele apresenta uma caixa de diálogo “Não foi possível encontrar o nosso componente” e mostra uma janela vazia. Por que?

7.1. | Ao usar o protocolo (k)svn+ssh, ele sempre solicita a senha novamente. Por que?

O “problema” é o próprio ssh. O subversion cria para cada comando um túnel para o repositório. Cada um desses túneis é uma nova conexão ssh. Do mesmo modo, cada conexão ssh deve ser autenticada. Isto pode ser resolvido se você armazenar a sua identidade pública local na máquina que contém o repositório. Se a sua identidade pública tiver uma senha, o ssh-agent será consultado (se estiver instalado).

Quando estiver executando um ssh-agent antes de iniciar o kdesvn, você deve adicionar a sua identidade ao cache do programa. O kdesvn não irá modificar por razões de segurança e sempre solicitará a sua senha novamente. (Leia a Página de Manual do ssh-add)

7.2. | A solicitação da senha para o (k)svn+ssh aparece no terminal quando o kdesvn é iniciado a partir dele. Como desativo isso?
| Não pode ser desativado, pois é uma característica do próprio ssh-agent. Quando vê que tem um terminal, ele solicita a senha no terminal e não em uma janela do X como o kdesvnaskpass. (Leia a Página de Manual do ssh-add).
7.3. | Como posso indicar uma porta ou usuário diferente no protocolo svn+ssh?
| Você pode usar um item no `$HOME/.ssh/config`. Consulte a sintaxe exata na Página de Manual de Configuração do SSH.
7.4. | Ao verificar a existência de atualizações, o kdesvn não mostra nada, mas eu sei que existem itens mais recentes!
| As atualizações só poderão ser apresentadas se a versão do subversion do servidor remoto também for 1.2. Por exemplo, parece que o repositório funciona com o subversion <1.2. Não há planos para que o kdesvn faça ele mesmo essa verificação recursiva - isso não faz sentido. Peça para atualizar o repositório para uma versão mais recente do subversion.
7.5. | Ao iniciar o kdesvn, ele apresenta uma caixa de diálogo “Não foi possível encontrar o nosso componente” e mostra uma janela vazia. Por que?

Existem muitas razões para explicar porque o programa não conseguiu carregar. Isto normalmente acontece quando você mesmo compila as bibliotecas do subversion. Nesse caso, você pode querer ler este relatório de erro.

Outra coisa relevante pode ser o esquecimento da indicação da variável libsuffix em sistemas de 64 bits durante a compilação. Como tal, o componente será instalado em `$PREFIX/lib` em vez de `$PREFIX/lib64`. Por isso, indique `-DLIB_SUFFIX=64` como parâmetro do cmake.

Se não resolver o seu problema, você poderá tentar isto no terminal:

    export LD_PRELOAD=/usr/lib/kde4/libkdesvnpart.so
      kdesvn
      unset LD_PRELOAD

(O local do `/usr/lib/kde4` depende obviamente do seu sistema. Verifique onde está instalado)

Você deve ver um grande conjunto de mensagens com o motivo do porque o carregamento da `libkdesvnpart.so` não é possível. Isso pode ajudá-lo a resolver seu problema.

Apêndice A. Sintaxe das revisões
Sintaxe das revisões

# Apêndice A. Sintaxe das revisões

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

Número

  Um número maior ou igual a -1. -1 significa “revisão não definida”, enquanto 0 é a versão inicial. Normalmente esses números não deveriam ser usados (a maioria das operações falhará com eles).

Palavra chave

  Um de

  - HEAD

  - BASE

  - COMMITED

  - PREV

  - START

  - TRABALHO

  As palavras-chave distinguem as maiúsculas de 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 - por exemplo, 2005-1-1 deverá ser escrito como {2005-01-01}.

A adição de uma revisão específica para uma URL será sempre feita através de “?rev=`revisão`”.

Apêndice B. Mais informações
Mais informações

# Apêndice B. Mais informações

## Comunicando erros, sugestões e críticas

Os relatórios de erro e solicitação de novas funcionalidades poderão ser criados em KDE Bugtracking System (Sistema de Gerenciamento de Erros do KDE).

Créditos, licença e agradecimentos
Créditos, licença e agradecimentos

## Créditos, licença e agradecimentos

Direitos autorais do programa 2005-2006 Rajko Albrecht `(ral AT alwins-world.de)`

Muito obrigado aos contribuidores:

- Andreas Richter `(ar AT oszine.de)` - pelo porte ao Qt4 do svnqt

- Michael Biebl `(biebl AT teco.edu)` - pela ajuda, várias ideias, implementações e dicas.

- Bram Schoenmakers `(bramschoenmakers AT kde.nl)` - pelas dicas específicas do KDE, tradução ao holandês e limpeza do meu código.

E obrigado para todos os outros tradutores (nunca imaginei ter tantas traduções em tão pouco tempo!) e por todos os comentários positivos e negativos. Isto ajudou muito.

Se quiser enviar a sua própria tradução para o kdesvn e precisar de ajuda, leia a página de Localização do KDE ou pergunte na lista de discussão `(kde-i18n-doc AT kde.org)`.

Direitos autorais da documentação 2005-2006 Rajko Albrecht `(ral AT alwins-world.de)`

Tradução de André Marcelo Alvarenga `(alvarenga AT kde.org)`

Esta documentação é licenciada sob os termos da Licença de Documentação Livre GNU.

Este programa é licenciado sob os termos da Licença Pública Geral GNU.

Apêndice C. Instalação
Instalação

# Apêndice C. Instalação

## Como obter o kdesvn

O kdesvn propriamente dito poderá ser encontrado na área de downloads do kdesvn.

Você poderá obter a última versão no repositório para saber o que está acontecendo.

A página Web deste projeto encontra-se aqui

Requisitos
Requisitos

## Requisitos

Você precisa ter instalado o Subversion 1.5 ou posterior e no mínimo o KDE. NÃO há suporte para o Subversion anterior ao 1.5!

O Subversion pode ser encontrado na sua página Web, mas a sua distribuição já deve ter os pacotes para o seu sistema.

Você pode encontrar uma lista de alterações nesta página.

Compilação e instalação
Compilação e instalação

## Compilação e instalação

O kdesvn precisa de pelo menos o cmake 2.8 para compilar (não há suporte para o automake). As seguintes etapas funcionam com os pacotes da distribuição ou do repositório. Descompacte o pacote ou faça um clone do repositório e mude para a pasta de origem resultante.

    % mkdir build
    % cd build
    % cmake ../ -DCMAKE_INSTALL_PREFIX=`kde-config --prefix` -DCMAKE_BUILD_TYPE=Release
    % make
    % make install