Portal da construção - casa. Aquecedores de água. Chaminés. Instalação de aquecimento. Aquecedores. Equipamento

Comandos SVN. TortoiseSVN Svn commit comandos a partir da linha de comando

Extrair

Svn checkout [-depth ARG] [--ignore-externals] [-r rev] URL PATH

Se a caixa de seleção estiver marcada Ignorar externo

Se você estiver verificando uma revisão específica, especifique-a após a URL com a opção -r.

Atualizar

svn info working_copy_url svn update [-r rev] PATH

A atualização de vários itens atualmente não é uma operação atômica no Subversion. Portanto, o TortoiseSVN primeiro encontra a revisão principal (HEAD) no repositório e depois atualiza todos os itens para essa revisão para evitar a criação de uma cópia de trabalho com revisões mistas.

Se apenas um item for selecionado para atualizar, ou se os itens selecionados não forem todos do mesmo repositório, o TortoiseSVN simplesmente atualiza para a revisão superior.

As opções de linha de comando não são usadas aqui. Atualizar para revisão também implementa o comando update, mas oferece mais opções.

Atualizar para revisão

svn info working_copy_url svn update [-r rev] [-depth ARG] [--ignore-externals] PATH

Os itens da caixa de combinação de profundidade estão relacionados ao argumento -depth.

Se a caixa de seleção estiver marcada Ignorar externo, use a opção --ignore-externals.

Consertar

No TortoiseSVN, a caixa de diálogo de confirmação usa vários comandos do Subversion. O primeiro estágio é a verificação de status, que determina os elementos de sua cópia de trabalho que podem ser submetidos. Você pode navegar nesta lista, comparar os arquivos com sua base e selecionar os itens que deseja incluir no commit.

svn status -v CAMINHO

Se a caixa de seleção estiver marcada

Se você marcar quaisquer arquivos e pastas não versionados, esses itens serão adicionados à sua cópia de trabalho primeiro.

svn adicionar CAMINHO...

Quando você clica em OK, o Subversion começa a executar o commit. Se você deixou todos os sinalizadores de arquivo em seu estado padrão, o TortoiseSVN usa uma confirmação recursiva da cópia de trabalho. Se você desmarcou alguns arquivos, um commit não recursivo (-N) deve ser usado e cada caminho deve ser especificado individualmente na linha de comando do commit.

Svn commit -m "LogMessage" [-depth ARG] [--no-unlock] PATH...

A LogMessage aqui é o conteúdo do campo de entrada da mensagem de log. Pode estar vazio.

Diferença

svn diff PATH

Se você usar o comando "Diferenças" no menu de contexto principal, estará comparando o arquivo alterado com sua revisão base. A saída do ICS do comando acima também faz isso e produz a saída no formato diff combinado. No entanto, o TortoiseSVN não usa isso. O TortoiseSVN usa o TortoiseMerge (ou um programa diff de sua escolha) para exibir graficamente as diferenças entre os arquivos de texto, portanto não há equivalente direto ao ICS.

Você também pode comparar quaisquer dois arquivos com o TortoiseSVN, estejam ou não sob controle de versão. O TortoiseSVN simplesmente alimenta esses dois arquivos no programa diff escolhido e permite que ele determine onde estão as diferenças.

Revista

svn log -v -r 0:N --limit 100 [--stop-on-copy] PATH ou svn log -v -r M:N [--stop-on-copy] PATH

Por padrão, o TortoiseSVN tenta extrair 100 mensagens de log usando o método --limit. Se as instalações forçarem o uso das APIs antigas, o segundo formulário será usado para obter mensagens de log para 100 revisões do repositório.

Se a caixa de seleção estiver marcada Parar ao copiar/renomear, use a opção --stop-on-copy.

Verificando alterações

svn status -v CAMINHO ou svn status -u -v CAMINHO

A verificação de status inicial examina apenas sua cópia de trabalho. Se você clicar em Verifique o armazenamento, o repositório também é verificado para ver quais arquivos serão alterados pela atualização e isso requer a opção -u.

Se a caixa de seleção estiver marcada Mostrar arquivos não versionados, o TortoiseSVN também mostrará arquivos e pastas não versionados na hierarquia da cópia de trabalho, dadas as regras de ignorar. Esta propriedade em particular não tem equivalente direto no Subversion porque o comando svn status não vai para pastas não versionadas.

gráfico de revisão

O gráfico de revisão é um recurso fornecido apenas pelo TortoiseSVN. Não há análogo no cliente de linha de comando.

O que o TortoiseSVN faz:

svn info working_copy_url svn log -v URL

onde está o url raiz storage e, em seguida, analisa os dados retornados.

Explorador de armazenamento

svn info working_copy_url lista svn [-r rev] -v URL

Você pode usar svn info para determinar a raiz do repositório: isso nível superior O exibido no navegador de armazenamento. Você não pode se mover acima deste nível. Além disso, esse comando retorna todas as informações de bloqueio exibidas no navegador do repositório.

Chamar svn list listará o conteúdo da pasta, para o URL e revisão especificados.

Editar conflitos

Este comando não tem equivalente em X. Ele chama o TortoiseMerge ou uma ferramenta externa de comparação/fusão de três vias para examinar os arquivos envolvidos no conflito e selecionar as linhas que devem ser usadas.

Assentou

svn resolveu PATH

Renomear

SVN renomear CURRENT_PATH NEW_PATH

Excluir

svn delete PATH

Remover alterações

svn status -v CAMINHO

O primeiro estágio é uma verificação de status que identifica itens em sua cópia de trabalho que podem ser recolhidos. Você pode visualizar a lista, comparar os arquivos com a base e selecionar os elementos nos quais deseja remover as alterações.

Quando você clicar em OK, o Subversion removerá as alterações. Se você deixou todos os sinalizadores de seleção de arquivo em seu estado padrão, o TortoiseSVN usa uma única reversão recursiva (-R) para a cópia de trabalho. Se você desmarcar alguns arquivos, cada caminho deverá ser especificado individualmente na linha de comando para remover as alterações.

SVN revert [-R] PATH...

limpeza

svn limpeza PATH

bloquear

svn status -v CAMINHO

O primeiro estágio é uma verificação de status que identifica os arquivos em sua cópia de trabalho que podem estar potencialmente bloqueados. Você pode selecionar os elementos que deseja bloquear.

Svn lock -m "LockMessage" [--force] PATH...

A LockMessage é o conteúdo do campo lockmessage. Pode estar vazio.

Se a caixa de seleção estiver marcada Bloqueios de interceptação, use a opção --force.

desbloquear

svn desbloquear PATH

Filial/Rótulo

Svn copy -m "LogMessage" URL URL ou svn copy -m "LogMessage" ou svn copy -m "LogMessage" URL PATH

A caixa de diálogo Ramificação/Rótulo executa uma cópia para o repositório. Existem 3 botões de alternância:

  • A revisão principal no repositório (HEAD)
  • A revisão especificada no repositório
  • cópia de trabalho

que correspondem às três opções de linha de comando acima.

Esta série de artigos é dedicada à introdução ao uso SVN, do ponto de vista de um usuário comum. O artigo foi escrito para ajudar meus colegas a aprender e usar rapidamente SVN. Então vamos começar com o básico.

Introdução

subversão ( SVN) é um sistema de controle de versão gratuito e de código aberto. SVN permite gerenciar arquivos e diretórios, bem como as alterações feitas neles ao longo do tempo. SVN oferece as seguintes opções:

  1. Controle de mudança de diretório. SVN usa um sistema de arquivos "virtual" com recursos de versão que é capaz de rastrear alterações ao longo do tempo em estruturas de diretório inteiras
  2. Histórico da versão real. SVN torna possível adicionar, excluir, copiar e renomear arquivos e diretórios. Nesse caso, cada arquivo recém-adicionado começa a vida com ardósia limpa, mantendo seu próprio histórico de mudanças
  3. Compromisso atômico. Cada conjunto de alterações vai para o repositório em sua totalidade ou não vai para lá. Aqueles. se ocorreu um erro durante o processamento do arquivo durante a confirmação das alterações do projeto, as alterações em todo o projeto não serão confirmadas
  4. metadados versionados. Cada arquivo e diretório tem seu próprio conjunto de propriedades, representado como um nome e um valor. Você pode criar e salvar qualquer par de nomes e valores de propriedades que precisar. As propriedades do arquivo são tão versionadas quanto seu conteúdo.
  5. Uma maneira de trabalhar com dados. SVN detecta diferenças entre arquivos usando um algoritmo binário especial que funciona igualmente com arquivos de texto e binários. Os arquivos são gravados no armazenamento de forma compactada, independentemente de seu tipo, e as diferenças entre as versões individuais podem ser transferidas pela rede em ambas as direções
  6. Ramos e tags eficazes. SVN cria ramificações e tags simplesmente copiando o projeto, usando um mecanismo semelhante a hard links em sistemas de arquivos. Graças a isso, as operações de criação de branches e tags demoram um pouco.


Lista de termos básicos

  1. repositório(repositório) é um repositório centralizado de códigos-fonte, materiais de trabalho e documentação. Qualquer número de clientes se conecta ao armazenamento e lê ou grava esses arquivos
  2. cópia de trabalho/cópia de trabalho(WC) é uma árvore de diretório comum em um computador que contém um conjunto de arquivos para trabalhar em um projeto. Alterações na cópia de trabalho não estão disponíveis para outros usuários do repositório até que sejam confirmadas.
  3. Porta-malas— a direção principal do desenvolvimento
  4. filial("Filial") - uma direção de desenvolvimento que existe independentemente de outra direção, mas tem consigo história comum. Uma ramificação sempre começa como uma cópia de algo e se move a partir desse ponto, criando sua própria história.
  5. Marcação(""Label"") - selecionou explicitamente, através da criação de uma pasta separada, a versão dos arquivos do projeto em certo momento tempo.
  6. revisão— número de revisão do repositório, dentro do repositório o número de revisão é um valor único
  7. Confira- um comando que realiza o checkout inicial de um projeto de um repositório no WC.
  8. Comprometer-se- um comando que confirma alterações em arquivos de projeto no WC para o Repositório.
  9. atualizar- um comando que atualiza os arquivos do projeto no WC a partir do repositório
  10. Reverter- um comando que desfaz quaisquer alterações nos arquivos do projeto no WC com base no número de revisão do repositório.
  11. mesclar- um comando que mescla arquivos de diferentes ramificações do projeto e coloca o resultado da mesclagem no WC.
  12. Conflito- uma situação que ocorre ao confirmar alterações, quando os mesmos arquivos foram alterados por vários desenvolvedores.
  13. Resolver- um conjunto de regras para resolver conflitos emergentes.
  14. Importar- comando para copiar rapidamente uma árvore de arquivos para o Repositório.
  15. Exportar- o comando para exportar um projeto difere do checkout porque não cria informações de serviço nas pastas do projeto.
  16. trocar- um comando que muda o WC para outro ramo de desenvolvimento.
  17. Criar, Adicionar, Excluir, cópia de, mover, Renomear- comandos para gerenciar arquivos e pastas em um repositório ou WC.

Programas

Trabalhando com o repositório SVN revisado com base Programas TortoiseSVN

Introdução

A função de ajuda do Subversion ( svn ajuda) fornece um resumo dos comandos disponíveis. Informações mais detalhadas estão disponíveis no livro on-line Subversion disponível em http://svnbook.red-bean.com/en/1.2/index.html . O Capítulo 3 é especialmente útil.

O seguinte é um conjunto básico de comandos que todos os editores usarão com frequência. Alguns comandos têm duas formas, a longa e a curta. Ambos estão listados na descrição.

svn diff. Isso é útil para dois propósitos diferentes. Primeiro, aqueles sem acesso de gravação ao servidor BLFS SVN podem usá-lo para gerar patches para enviar à lista de discussão BLFS-Dev. Para fazer isso, basta editar os arquivos em sua caixa de areia local e executar svn diff > FILE.patch da raiz do seu diretório BLFS. Você pode então anexar este arquivo a uma mensagem para a lista de discussão BLFS-Dev, onde alguém com direitos de edição pode pegá-lo e aplicá-lo ao livro. O segundo uso é descobrir o que mudou entre duas revisões usando: svn diff -r revisão1:revisão2 NOME DO ARQUIVO . Por exemplo: svn diff -r 168:169 index.xml produzirá um diff mostrando as alterações entre as revisões 168 e 169 do index.xml .

Subversion (SVN - Sistema de Versões Concorrentes) é um sistema de controle de versão centralizado. Projetado como um substituto para CVS, tem a mesma funcionalidade, mas é desprovido de muitas de suas deficiências. Veja também: livro SVN .

Configurando um servidor SVN

repositório SVN, simplesmente, neste exemplo, um diretório, /home/svn/, deve existir: # svnadmin create --fs-type fsfs /home/svn/project1 Você pode se conectar ao repositório das seguintes maneiras:

  • arquivo://- Acesso direto através do sistema de arquivos usando SVN cliente. Os privilégios devem ser configurados corretamente no sistema de arquivos local.
  • svn:// ou svn+ssh://- Acesso remoto a SVN servidor (também de acordo com o protocolo SSH). As permissões são necessárias no sistema de arquivos local, a porta padrão é: 2690/tcp.
  • http:// Acesso remoto via webdav usando apache. Este método não requer usuários locais.
Importar e verificar um projeto existente por meio do sistema de arquivos local. Não é necessário entrar no diretório de trabalho, você pode apenas especificar o caminho completo: # svn import /project1/ file:///home/svn/project1/trunk -m "Initial import" # svn checkout file:/// home/svn/projeto1

Acesso remoto via protocolo SSH

Acesso remoto por protocolo SSH não requer nenhuma configuração adicional, basta substituir arquivo:// sobre svn+ssh/nome do host. Por exemplo: # svn checkout svn+ssh://hostname/home/svn/project1 Assim como no acesso local, o usuário deve ter uma conta para acessar o protocolo SSH para o servidor e permissões de leitura/gravação configuradas corretamente. Este método pode ser adequado para pequenos grupos de usuários, os usuários do grupo são os proprietários do repositório, por exemplo: # groupadd subversion # groupmod -A user1 subversion # chown -R root:subversion /home/svn # chmod -R 770 / home/svn

Acesso remoto via HTTP (apache)

Acesso remoto via http(HTTPS), uma solução adequada para grupos de usuários remotos. Este método usa a autorização do servidor web Apache(não contas locais). Aqui está uma configuração típica: LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # Somente para controle de acesso DAV svn # URL "/svn/foo" será mapeado para o caminho do repositório /home/svn/foo SVNParentPath /home/svn AuthType Basic AuthName "Repositório Subversion" AuthzSVNAccessFile /etc/apache2/svn.acl AuthUserFile /etc/apache2/svn - passwd Requer servidor de usuário válido Apache deve ter acesso total ao repositório: # chown -R www:www /home/svn Crie um usuário com htpasswd: # htpasswd -c /etc/svn-passwd user1 #-c Criar arquivo

exemplo de controle de acesso svn.acl

# Acesso de leitura padrão. "*=" não terá acesso por padrão[/] * = r projeto1-desenvolvedores = joe, jack, jane # Conceda permissões de gravação aos desenvolvedores@projeto1-desenvolvedores=rw

Alguns comandos para gerenciar um repositório SVN

Veja também o Cartão de Referência Rápida do Subversion. Tortoise SVN, interface agradável do Windows.

Importar

Você pode importar um novo projeto contendo diretórios e arquivos para o repositório usando o comando importar. O mesmo comando também é usado para adicionar um diretório com seu conteúdo a um projeto existente. # svn ajuda a importar # Ajuda no comando # Adicione um novo diretório e seu conteúdo ao diretório src de project1.# svn import /project1/newdir http://host.url/svn/project1/trunk/src -m "add newdir"

Comandos SVN Típicos

# svn co http://host.url/svn/project1/trunk # Faça um pedido de última versão # Tags e branches são criados copiando# svn mkdir http://host.url/svn/project1/tags/ # Cria um diretório de tags# svn copy -m "Tag rc1 rel." http://host.url/svn/project1/trunk \ http://host.url/svn/project1/tags/1.0rc1 # svn status [--verbose] # Verifique o status dos arquivos no diretório de trabalho# svn add src/arquivo.h src/arquivo.cpp # Adicione dois arquivos# svn commit -m "Adicionado novo arquivo de classe" # Enviar alterações por mensagem# svn ls http://host.url/svn/project1/tags/ # Lista de todas as tags# svn move foo.c bar.c # Mover (renomear) arquivos# svn delete some_old_file # Excluir arquivos

add - Adiciona arquivos, diretórios e links simbólicos, marcando-os para posterior inclusão no repositório. Depois de marcados, eles são baixados e adicionados ao repositório na primeira vez que as alterações são confirmadas. Se você adicionou algo, mas mudou de ideia antes de colar, pode remover a marca de adição com o subcomando svn revert.
svn adicionar CAMINHO…
$ svn add testdir

culpa (elogio, anotação, ann) - Exibe o autor e a revisão linha por linha para os arquivos ou URLs especificados. Cada linha de texto começa com o nome do autor (nome de usuário) e o número da revisão. Assim, é indicado quem e quando alterou esta linha pela última vez.
svn culpa TARGET[@REV]…
$ culpa svn http://svn.red-bean.com/repos/test/readme.txt

cat - Exibe o conteúdo dos arquivos ou URLs especificados. Use svn list para listar o conteúdo dos diretórios.
svn cat TARGET[@REV]...
$ svn cat http://svn.red-bean.com/repos/test/readme.txt

checkout (co) - Cria uma cópia de trabalho com base nos dados do repositório. Se PATH for omitido, o nome base da URL será usado como o nome do diretório da cópia de trabalho. Se forem fornecidas várias URLs, as cópias correspondentes serão feitas no subdiretório PATH, cada uma em seu próprio diretório formado a partir do nome base da URL.
svn URL de checkout[@REV]…
svn checkout svn://svn.ru2web.ru/ru2web/branches/www-01/ /usr/home/vasia/ru2web.ru/app/

cleanup - Limpa a cópia de trabalho recursivamente, removendo bloqueios deixados por operações pendentes. Assim que você encontrar um erro "a cópia de trabalho está bloqueada", execute este subcomando para remover bloqueios antigos e trazer sua cópia de trabalho de volta a um estado saudável.

Se por algum motivo a operação do comando svn update falhou devido a problemas com o programa diff externo em execução (por exemplo, algo foi pressionado nele ou houve uma falha de rede), você precisa especificar a opção –diff3-cmd para permitir a cópia limpa para concluir todas as junções usando um programa de comparação externo. Você também pode especificar um diretório de configuração com a opção --config-dir, mas tente não abusar dessas opções.

commit (ci) - Envia as alterações feitas na cópia de trabalho para o repositório para serem salvas lá. Se você não usar a opção --file ou --message, o svn iniciará um editor externo para compor o comentário. Leia a descrição da opção editor-cmd em "Config".
svn commit enviará todas as marcas de bloqueio encontradas recursivamente para o repositório e desbloqueará os recursos correspondentes a essas marcas, a menos que a opção --no-unlock tenha sido especificada. A "área de pesquisa" é especificada especificando PATH.
svn commit

copy (cp) - Copia um arquivo para a cópia de trabalho ou vault. SRC e DST podem ser caminhos dentro da cópia de trabalho ou URLs dentro do repositório.
svn copiar SRC DST

delete (del, remove, rm) - Remove um item da cópia de trabalho ou repositório.
svn delete PATH…
svn deletar url...

diff (di) - Mostra as diferenças entre a cópia de trabalho e o repositório.
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMI [e-mail protegido] http://svn.collab.net/repos/svn/trunk/ [e-mail protegido]

export - Exporta uma árvore de diretórios pura (sem pastas .svn).

ajuda (?, h) - Ajuda.

import - Confirme um arquivo ou árvore não versionada para o repositório.
URL de importação svn

info - Exibe informações sobre o elemento local ou remoto.
svninfo

list (ls) - Lista de diretórios no repositório.
svnlist...]
$ lista svn http://svn.red-bean.com/repos/test/support

lock - Bloqueia a cópia de trabalho no repositório para que nenhum outro usuário possa fazer alterações no caminho fornecido.
svn lock TARGET…
$ svn lock tree.jpg house.jpg

log - Mostra mensagens de log.
svnlog
URL do svnlog
$svnlog

mesclar - Aplicar diferenças entre duas fontes.
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch

mkdir - Crie um diretório em um repositório com versão.
$ svn mkdir novodir

mover (mv, renomear, ren) - Mover um arquivo ou diretório.
svn move SRC DST

propdel (pdel, pd) - Remove propriedades de arquivos, diretórios ou revisões.
svn propdel PROPNAME
svn propdel PROPNAME --revprop -r REV

propedit (pedit, pe)
propget (pget, pg)
proplista (plista, pl)
propset (pset, ps)

resolvido - Remova "conflitos" na cópia de trabalho de arquivos ou diretórios.
svn resolveu PATH…

revert - Reverte todas as alterações locais.
$ svn revert myprj.phtml

status (stat, st) - O status da cópia de trabalho dos arquivos ou diretórios.
$ svn status wc

switch (sw) - Atualiza a cópia de trabalho para uma URL diferente.

unlock - Desbloqueia a cópia de trabalho.

update (up) - Atualize sua cópia de trabalho.

postagens semelhantes