Usando o TortoiseSVN através da linha de comando

254

Eu quero usar as opções SVN da linha de comando. Eu uso o TortoiseSVN, executo vários comandos e recebo o seguinte erro.

'svn' não é reconhecido como um comando interno ou externo

Eu usei o comando

svn checkout [-N] [--ignore-externals] [-r rev] URL PATH

Eu acho que devo adicionar alguma variável de ambiente ou outra coisa.

O que devo fazer ou o TortoiseSVN não pode ser usado na linha de comando?

Night Walker
fonte
4
Eu sugiro subversão slik . E após a instalação, adicione seu diretório bin ao seu caminho. -bhups
bhups
3
O TortoiseSVN é provavelmente o cliente SVN da GUI do Windows mais usado e está completamente documentado. Eu não chamaria isso de pseudo-cliente apenas porque não é a implementação da linha de comando de referência.
309 Joey
18
A versão mais recente do TortoiseSVN (1.7.1 deste documento) tem uma opção durante a instalação para ferramentas de linha de comando. Não está ativado por padrão, mas instalará os arquivos de linha de comando padrão para o svn. Portanto, não é mais necessário instalar um pacote de subversão separado como o Silk.
vee
1
Apenas um FYI rápido, se você estiver usando o Slik svn e receber o erro: "'svn' não é reconhecido ...", pode ser necessário abrir a caixa de diálogo Propriedades do sistema. Enquanto o Slik adiciona a entrada correta à sua variável Path, você pode ter que clicar em editar e em 'ok' (mesmo que não tenha feito alterações) para ativar a variável. Pelo menos essa foi a minha experiência no Windows Vista. Depois disso, o Windows reconheceu a alteração no caminho e meu comando svn foi reconhecido.
Jesse
1
Eu adicionei o / path bin SlikSvn à variável de ambiente, mas ainda obter este erro ...
Lion789

Respostas:

464

Por padrão, o TortoiseSVN sempre possui uma GUI (Interface Gráfica do Usuário) associada. Mas no instalador (da versão 1.7 e posterior) você pode selecionar a opção "ferramentas de cliente da linha de comando" para poder chamar comandos svn (como svn commit e svn update) na linha de comando.

Aqui está uma captura de tela da opção "ferramentas de linha de comando do cliente" no instalador, você precisa selecionar:

How-to-install-TortoiseSvn-CommandLineTools

AnneTheAgile
fonte
52
Pessoalmente, prefiro esta resposta à aceita: sem instalações secundárias e acesso total à linha de comando SVN padrão.
Haroldo_OK 22/02
2
Também possui o benefício adicional de que as versões da ferramenta de linha de comando permaneçam sincronizadas com a versão do TortoiseSVN.
the_mandrill
4
... o que significa, com mais detalhes: o formato do diretório de trabalho do Subversion mudou algumas vezes, por exemplo, nas versões 1.7 e 1.8. Um cliente 1.7 não usará um diretório de trabalho mais antigo, a menos que seja svn upgraded; depois disso, um cliente 1.6 não poderá mais usá-lo.
Tobias
38
Como dica, se você já possui o Tortoise instalado, não há necessidade de reinstalar. Você pode simplesmente abrir o arquivo .msi do instalador original e, em vez de escolher "Desinstalar", pode escolher "Modificar". Ele apenas atualiza sua instalação atual do Tortoise sem estragar nada.
Trevor
5
Como dica, se você já possui o Tortoise instalado e não possui o arquivo .msi - acesse o Painel de Controle -> Programas e Recursos e selecione o TortoiseSVN -> Modificar.
zvi 30/01/19
131

O TortoiseSVN possui uma interface de linha de comando que pode ser usada para automação da GUI do TortoiseSVN e é diferente da interface normal do Subversion.

Você pode encontrar informações sobre as opções de linha de comando do TortoiseSVN na documentação: Apêndice D. Automatizando o TortoiseSVN . O principal programa para trabalhar aqui é TortoiseProc.exe.

Mas uma nota no topo já diz:

Lembre-se de que o TortoiseSVN é um cliente da GUI e este guia de automação mostra como fazer com que as caixas de diálogo do TortoiseSVN apareçam para coletar informações do usuário. Se você deseja escrever um script que não requer entrada, você deve usar o cliente de linha de comando oficial do Subversion.

Outra opção seria instalar os binários do Subversion. O Slik SVN é uma boa compilação (e não requer um registro como o Collabnet). Versões recentes do TortoiseSVN também incluem o cliente de linha de comando, se você optar por instalá-lo.

Joey
fonte
2
Só para adicionar isso - verifique se o Tortoise está no seu caminho. Caso contrário, nada funcionará.
26416 Thomas Owens
2
Com base nesta resposta, acho que a melhor aposta seria instalar o cliente de linha de comando SVN real em vez de aprender uma segunda interface de linha de comando. Eu não sei como fazer isso, no entanto.
jprete
2
Thomas: Por padrão, o TortoiseSVN e o Slik SVN alteram o caminho de acordo.
Joey
23
Esta solução está simplesmente desatualizada, o instalador do TortosieSVN agora inclui as ferramentas de linha de comando.
30713 Josh
1
Pode ser necessário reiniciar após a instalação para obter a alteração na variável de ambiente PATH.
Oliver Bock
91

Caso você já tenha instalado a GUI do TortoiseSVN e quer saber como atualizar para as ferramentas de linha de comando, aqui estão as etapas ...

  1. Vá para Painel de controle do Windows → Programa e recursos (Windows 7 ou superior)
  2. Localize o TortoiseSVN e clique nele.
  3. Selecione "Alterar" entre as opções disponíveis.
  4. Consulte esta imagem para mais etapas.

    Ativar linha de comando do TortoiseSVN

  5. Após a conclusão das ferramentas do cliente da linha de comandos, abra um prompt de comandos e digite svn helppara verificar a instalação bem-sucedida.

Devendra Vaja
fonte
Sua resposta ainda não foi formatada. E tinha informações indesejadas. Ele formatou e editou sua resposta corretamente. Leia o centro de ajuda para mais informações. ;)
Sorte
Win10 é "Apps & Features" .. mas isso é provavelmente óbvio
magro
Ok, não acredite em mim. Faça isso como uma pergunta na meta se a edição é legítima ou não. Ele não apenas formatou sua resposta, mas também removeu informações indesejadas que não são necessárias para a resposta. Isso se chama moderação. E as pessoas com altos representantes geralmente limpam o site moderando e contribuindo, razão pela qual sugeri que você consultasse a Central de Ajuda. Mas você só quer discutir em vez de adquirir conhecimento. Boa luck.😉
Sorte
Sim, na verdade, estou interessado em compartilhar o conhecimento e não reivindicar o trabalho de alguém e pregar. Também não sou um seguidor cego de altas repetições.
Devendra Vaja
enquanto habilitamos a linha de comando, ele solicita o caminho do aplicativo necessário para o download. caminho: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Amit Joshi
27

Para usar o suporte a comandos, siga estas etapas:

  1. Definir caminho nas variáveis ​​de ambiente:

    • abra ' Propriedades do sistema ';
    • na guia ' Avançado ', clique no botão ' Variáveis ​​de ambiente '
    • na seção ' Variáveis ​​do sistema ', selecione a opção ' Caminho ' e clique em ' editar '
    • acrescente valor variável ao caminho para o arquivo TortoiseProc.exe , por exemplo:

      C: \ Arquivos de programas \ TortoiseSVN \ bin

  2. Desde que você registrou o TortoiseProc , você pode usá-lo de acordo com a documentação do TortoiseSVN .

    Exemplos:

    TortoiseProc.exe / comando: confirmar /caminho:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" mensagem de log de teste "/ closeonend: 0

    TortoiseProc.exe / comando: atualização / caminho: "c: \ svn_wc \" / closeonend: 0

    TortoiseProc.exe / comando: log /path:"c:\svn_wc\file1.txt "/ startrev: 50 / endrev: 60 / closeonend: 0

PS Para usar um nome amigável como 'svn' em vez de 'TortoiseProc', coloque o arquivo 'svn.bat' no diretório 'TortoiseProc.exe'. Há um exemplo de svn.bat:

TortoiseProc.exe %1 %2 %3
Bruxo
fonte
O principal problema não é o nome do executável (e como encontrá-lo), mas a sintaxe da linha de comando totalmente diferente; veja minha resposta que fala sobre meu tsvnprograma (que não existia no momento da resposta de Warlock). Versões recentes do Windows permitem especificar todos os argumentos como %*(em vez de %1 %2 %3...).
Tobias
10

Para ativar o svn, execute o programa de instalação do TortoiseSVN novamente, selecione "Modificar" (permite que os usuários alterem a maneira como os recursos são instalados) e instale "ferramentas de cliente de linha de comando".

Kiki
fonte
para aqueles de vocês que estão se perguntando onde a opção "Modificar" é - tentar re-instalar o Tortoise SVN
maya
@maya Se você já o instalou, não tente desinstalar e reinstalar. Vá para Control Panel\Programs\Programs and Featurespesquisar o Tortoise SVN e clique Changee, em seguida, clique em Modify.
Lucky
9

Minha solução foi usar o DOSKEY para configurar alguns aliases para os comandos que eu mais uso:

DOSKEY svc=TortoiseProc.exe /command:commit /path:.
DOSKEY svu=TortoiseProc.exe /command:update /path:.
DOSKEY svl=TortoiseProc.exe /command:log /path:.
DOSKEY svd=TortoiseProc.exe /command:diff /path:$*

O "doskey persist" do Google para obter dicas sobre como configurar um arquivo .cmd que é executado toda vez que você abre o prompt de comando como um arquivo. * Rc no Unix.

SeanH
fonte
Ótimo! Esta é a única resposta que realmente chama o TortoiseSVN, não comum svn, na linha de comando.
Chimpanzé bélico
4

Você pode ter as ferramentas de linha de comando TortoiseSVN e Apache Subversion instaladas. Normalmente, instalo as ferramentas Apache SVN no site de download do VisualSVN: https://www.visualsvn.com/downloads/

Uma vez instalado, coloque o Subversion \ bin no seu PATH definido. Você poderá usar o TortoiseSVN quando desejar usar a GUI e possuir as ferramentas de linha de comando SVN adequadas para usar na linha de comando.

David
fonte
3

Há uma confusão que está fazendo com que muitos usuários do TortoiseSVN usem as ferramentas de linha de comando erradas quando eles realmente procuram por um svn.execliente de linha de comando.

O que devo fazer ou o TortoiseSVN não pode ser usado na linha de comando?

svn.exe

Se você deseja executar comandos do Subversion no prompt de comando, execute o comando svn.exe cliente de linha de comando. O TortoiseSVN 1.6.xe versões anteriores não incluíam ferramentas de linha de comando SVN, mas as versões modernas.

Se você deseja obter ferramentas de linha de comando SVN sem precisar instalar o TortoiseSVN, consulte a página de distribuições binárias do SVN ou simplesmente baixe a versão mais recente da página de downloads do VisualSVN .

Se você possui ferramentas de linha de comando SVN instaladas em seu sistema, mas ainda assim obtém o erro 'svn' is not recognized as an internal or external command, verifique %PATH%a variável de ambiente. %PATH%deve incluir o caminho para o diretório de ferramentas SVN, por exemplo C:\Program Files (x86)\VisualSVN\bin.

TortoiseProc.exe

Além do svn.exeTortoiseSVN, TortoiseProc.exeele pode ser chamado no prompt de comando. Na maioria dos casos, você não precisa usar essa ferramenta, porque ela deve ser usada apenas para automação da GUI. TortoiseProc.exenão substitui o cliente de linha de comando SVN.

bahrep
fonte
2

Como Joey apontou, o TortoiseSVN possui uma sintaxe de linha de comando própria. Infelizmente, é bastante feio, se você está acostumado asvn comandos, e ignora o diretório de trabalho atual, portanto, não é muito utilizável - exceto para scripts.

Eu criei um pequeno programa Python ( tsvn) que imita a svnsintaxe da linha de comando o mais próximo possível e chama o TortoiseSVN de acordo. Portanto, a diferença entre chamar as ferramentas normais de linha de comando e chamar o TortoiseSVN é reduzida a uma pequena letra tno início.

Meu tsvnprograma ainda não está completo, mas já é útil. Pode ser encontrado na cheeseshop ( https://pypi.python.org/pypi/tsvn/ )

Tobias
fonte
Para aqueles que não estão familiarizados com o Python: você precisa de um intérprete recente do Python 2.x. Se você tiver easy_installou pip install, basta especificar tsvn; caso contrário, você pode baixar e extrair o tarball e executar o setup.pyscript de instalação contido . Uma vez que é interpretado, você pode inspecioná-lo com todos os detalhes ;-)
Tobias
2

Depois de algum tempo, usei essa solução alternativa ...

(no arquivo .bat)

SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
jorgesimoes
fonte
2

Minha correção para obter comandos SVN foi copiar arquivos .exe e .dll do diretório TortoiseSVN e colá-los na pasta system32.

Você também pode executar o comando no diretório TortoiseSVN e adicionar o caminho do diretório ativo a cada comando. Por exemplo:

C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout

Adicionar a lixeira ao caminho deve fazê-lo funcionar sem duplicar os arquivos, mas não funcionou para mim.

KC um EE
fonte
Essa abordagem não está funcionando, ainda mostra'svn' is not recognized as an internal or external command
Suraj M:
0

Depois de selecionar "Ferramentas de linha de comando SVN", ele se tornará assim:

Digite a descrição da imagem aqui

Alvin567
fonte
5
Este é o resultado desejado, no entanto, esta resposta não diz como realmente conseguir isso.
BogdanBiv