Usando TortoiseSVN a través de la línea de comando

254

Quiero usar las opciones de línea de comando SVN. Uso TortoiseSVN, ejecuto varios comandos y aparece el siguiente error.

'svn' no se reconoce como un comando interno o externo

Usé el comando

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

Creo que debería agregar alguna variable de entorno u otra cosa.

¿Qué debo hacer o no se puede usar TortoiseSVN desde la línea de comandos?

Caminante nocturno
fuente
44
Sugeriría slik subversion . Y después de instalar simplemente agregue su directorio bin a su ruta. -bhups
bhups
3
TortoiseSVN es probablemente el cliente SVN de Windows GUI más utilizado que existe y está completamente documentado. No lo llamaría pseudo-cliente solo porque no es la implementación de línea de comandos de referencia.
Joey el
18
La última versión de TortoiseSVN (1.7.1 de este escrito) tiene una opción durante la instalación para las herramientas de línea de comandos. No está activado de manera predeterminada, pero instalará los archivos de línea de comando estándar para svn. Por lo tanto, ya no es necesario instalar un paquete de subversión separado como Silk.
vee
1
Solo un FYI rápido, si usa Slik svn y obtiene ese error: "'svn' no es reconocido ..." puede que tenga que abrir el diálogo Propiedades del sistema. Si bien Slik agrega la entrada correcta a su variable Path, es posible que tenga que hacer clic en editar y 'ok' (incluso si no ha realizado ningún cambio) para habilitar la variable. Al menos esa fue mi experiencia con Windows Vista. Después de hacer eso, Windows reconoció el cambio en la ruta y mi comando svn fue reconocido.
Jesse
1
He agregado la ruta SlikSvn / bin a la variable de entorno, pero todavía recibo este error ...
Lion789

Respuestas:

464

Por defecto, TortoiseSVN siempre tiene una GUI (interfaz gráfica de usuario) asociada. Pero en el instalador (de la versión 1.7 y posteriores) puede seleccionar la opción "herramientas de cliente de línea de comandos" para que pueda llamar a los comandos svn (como svn commit y svn update) desde la línea de comandos.

Aquí hay una captura de pantalla de la opción "herramientas de cliente de línea de comandos" en el instalador, debe asegurarse de seleccionarla:

Cómo-instalar-TortoiseSvn-CommandLineTools

AnneTheAgile
fuente
52
Personalmente, prefiero esta respuesta a la aceptada: no hay instalaciones secundarias y acceso completo a la línea de comando SVN estándar.
Haroldo_OK
2
También tiene el beneficio adicional de que las versiones de la herramienta de línea de comandos permanecen sincronizadas con la versión TortoiseSVN.
the_mandrill
44
... lo que significa, con más detalle: el formato del directorio de trabajo de Subversion ha cambiado varias veces, por ejemplo, en las versiones 1.7 y 1.8. Un cliente 1.7 no usará un directorio de trabajo anterior a menos que sea svn upgraded; después de eso, un cliente 1.6 ya no podrá usarlo.
Tobias
38
Como consejo, si ya tiene instalada Tortoise, no es necesario volver a instalarla. Simplemente puede abrir el archivo .msi del instalador original y, en lugar de elegir "Desinstalar", puede elegir "Modificar". Simplemente actualizará su instalación actual de Tortoise sin estropear nada.
Trevor
55
Como consejo, si ya tiene instalado Tortoise y no tiene el archivo .msi , puede ir al Panel de control -> Programas y características, y luego seleccionar TortoiseSVN -> Modificar.
zvi
131

TortoiseSVN tiene una interfaz de línea de comandos que se puede utilizar para la automatización de la interfaz gráfica de usuario de TortoiseSVN y es diferente de la versión normal de Subversion.

Puede encontrar información sobre las opciones de línea de comandos de TortoiseSVN en la documentación: Apéndice D. Automatización de TortoiseSVN . El programa principal para trabajar aquí es TortoiseProc.exe.

Pero una nota en la parte superior ya dice:

Recuerde que TortoiseSVN es un cliente GUI, y esta guía de automatización le muestra cómo hacer que los cuadros de diálogo de TortoiseSVN aparezcan para recopilar las entradas del usuario. Si desea escribir un script que no requiera entrada, debe usar el cliente oficial de línea de comando de Subversion.

Otra opción sería instalar los binarios de Subversion. Slik SVN es una buena compilación (y no requiere un registro como Collabnet). Las versiones recientes de TortoiseSVN también incluyen el cliente de línea de comandos si elige instalarlo.

Joey
fuente
2
Solo para agregar a esto, asegúrese de que Tortoise esté en su camino. De lo contrario, nada funcionará.
Thomas Owens
2
Según esta respuesta, creo que la mejor opción sería instalar el cliente de línea de comandos SVN real en lugar de aprender una segunda interfaz de línea de comandos. Sin embargo, no sé cómo hacer eso.
jprete
2
Thomas: Por defecto, TortoiseSVN y Slik SVN alterarán la ruta en consecuencia.
Joey el
23
Esta solución simplemente está desactualizada, el instalador de TortosieSVN ahora incluye las herramientas de línea de comandos.
Josh
1
Es posible que deba reiniciar después de la instalación para obtener el cambio en la variable de entorno PATH.
Oliver Bock
91

En caso de que ya haya instalado la GUI TortoiseSVN y se pregunte cómo actualizar a las herramientas de línea de comandos, estos son los pasos ...

  1. Vaya al Panel de control de Windows → Programa y características (Windows 7+)
  2. Localice TortoiseSVN y haga clic en él.
  3. Seleccione "Cambiar" de las opciones disponibles.
  4. Consulte esta imagen para más pasos.

    TortoiseSVN Command Line Enable

  5. Después de completar las herramientas del cliente de línea de comandos, abra un símbolo del sistema y escriba svn helppara verificar la instalación exitosa.

Devendra Vaja
fuente
Su respuesta no estaba formateada ya. Y tenía información no deseada. Él formateó y editó su respuesta correctamente. Por favor lea el centro de ayuda para más información. ;)
Lucky
Win10 es "Aplicaciones y características" ... pero eso es probablemente obvio
delgado
Ok no me creas Haga esto como una pregunta en meta si la edición es legítima o no. No solo formateó su respuesta, sino que también eliminó la información no deseada que no se requiere para la respuesta. Se llama moderación. Y las personas con altas repeticiones generalmente limpian el sitio moderando y contribuyendo, por eso te sugerí que buscaras el centro de ayuda. Pero solo quieres discutir en lugar de ganar conocimiento. Buena suerte.
Lucky
Sí, en realidad estoy interesado en compartir el conocimiento y no reclamar el trabajo y la predicación de alguien. Además, no soy un seguidor ciego de altas repeticiones.
Devendra Vaja
mientras habilitamos la línea de comando, solicita la ruta de la aplicación que se requiere para descargar. ruta: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Amit Joshi
27

Para utilizar el soporte de comandos, debe seguir estos pasos:

  1. Definir ruta en variables de entorno:

    • abra ' Propiedades del sistema ';
    • en la pestaña ' Avanzado ', haga clic en el botón ' Variables de entorno '
    • en la sección ' Variables del sistema ' seleccione la opción ' Ruta ' y haga clic en ' editar '
    • agregue valor variable con la ruta al archivo TortoiseProc.exe , por ejemplo:

      C: \ Archivos de programa \ TortoiseSVN \ bin

  2. Como ha registrado TortoiseProc , puede usarlo de acuerdo con la documentación de TortoiseSVN .

    Ejemplos:

    TortoiseProc.exe / command: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" mensaje de registro de prueba "/ closeonend: 0

    TortoiseProc.exe / comando: actualización / ruta: "c: \ svn_wc \" / closeonend: 0

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

PD Para usar un nombre descriptivo como 'svn' en lugar de 'TortoiseProc', coloque el archivo 'svn.bat' en el directorio de 'TortoiseProc.exe'. Hay un ejemplo de svn.bat:

TortoiseProc.exe %1 %2 %3
Brujo
fuente
El principal problema no es el nombre del ejecutable (y cómo encontrarlo) sino la sintaxis de la línea de comandos totalmente diferente; vea mi respuesta que habla sobre mi tsvnprograma (que no existía en el momento de la respuesta de Warlock). Las versiones recientes de Windows permiten especificar todos los argumentos como %*(en lugar de %1 %2 %3...).
Tobias
10

Para habilitar svn, ejecute nuevamente el programa de instalación TortoiseSVN, seleccione "Modificar" (Permite a los usuarios cambiar la forma en que se instalan las características) e instale "herramientas de cliente de línea de comandos".

Kiki
fuente
para aquellos de ustedes que se preguntan dónde está la opción "Modificar" - intente reinstalar Tortoise SVN
maya
@maya Si ya lo instaló, no intente desinstalarlo y volver a instalarlo. Vaya a Control Panel\Programs\Programs and Featuresbuscar Tortoise SVN y haga clic Changey luego haga clic en Modify.
Lucky
9

Mi solución fue usar DOSKEY para configurar algunos alias para los comandos que más 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:$*

Google "doskey persist" para obtener consejos sobre cómo configurar un archivo .cmd que se ejecuta cada vez que abre el símbolo del sistema como un archivo. * Rc en Unix.

SeanH
fuente
¡Excelente! Esta es la única respuesta que en realidad invoca TortoiseSVN, no ordinaria svn, desde la línea de comandos.
Warlike Chimpanzee
4

Puede tener tanto TortoiseSVN como las herramientas de línea de comandos Apache Subversion instaladas. Normalmente instalo las herramientas Apache SVN desde el sitio de descarga de VisualSVN: https://www.visualsvn.com/downloads/

Una vez instalado, coloque el Subversion \ bin en su RUTA establecida. Entonces podrá usar TortoiseSVN cuando quiera usar la GUI, y tendrá las herramientas de línea de comando SVN adecuadas para usar desde la línea de comando.

David
fuente
3

Existe una confusión que está causando que muchos usuarios de TortoiseSVN utilicen las herramientas de línea de comando incorrectas cuando en realidad estaban buscando un svn.execliente de línea de comando.

¿Qué debo hacer o no se puede usar TortoiseSVN desde la línea de comandos?

svn.exe

Si desea ejecutar comandos de Subversion desde el símbolo del sistema, debe ejecutar el svn.execliente de línea de comandos. TortoiseSVN 1.6.xy versiones anteriores no incluían herramientas de línea de comandos SVN, pero las versiones modernas sí.

Si desea obtener herramientas de línea de comandos SVN sin tener que instalar TortoiseSVN, consulte la página de distribuciones binarias SVN o simplemente descargue la última versión de la página de descargas de VisualSVN .

Si tiene herramientas de línea de comandos SVN instaladas en su sistema, pero aún así recibe el error 'svn' is not recognized as an internal or external command, debe verificar %PATH%la variable de entorno. %PATH%debe incluir la ruta al directorio de herramientas SVN, p. ej.C:\Program Files (x86)\VisualSVN\bin .

TortoiseProc.exe

Además svn.exe, TortoiseSVN viene con TortoiseProc.exeeso se puede llamar desde el símbolo del sistema. En la mayoría de los casos, no necesita usar esta herramienta, ya que solo debe usarse para la automatización de la GUI. TortoiseProc.exeno es un reemplazo para el cliente de línea de comandos SVN.

bahrep
fuente
2

Como señaló Joey, TortoiseSVN tiene una sintaxis de línea de comandos propia. Lamentablemente es bastante feo, si estás acostumbradosvn comandos, e ignora el directorio de trabajo actual, por lo que no es muy útil, excepto para las secuencias de comandos.

He creado un pequeño programa Python ( tsvn) que imita la svnsintaxis de la línea de comandos lo más cerca posible y llama a TortoiseSVN en consecuencia. Por lo tanto, la diferencia entre llamar a las herramientas normales de línea de comandos y llamar a TortoiseSVN se reduce a una pequeña letra tal principio.

Mi tsvnprograma aún no está completo pero ya es útil. Se puede encontrar en la tienda de quesos ( https://pypi.python.org/pypi/tsvn/ )

Tobias
fuente
Para aquellos que no están familiarizados con Python: necesita un intérprete reciente de Python 2.x. Si tiene easy_installo pip install, solo especifique tsvn; de lo contrario, puede descargar y extraer el tarball y ejecutar el setup.pyscript de instalación contenido . Dado que está interpretado, puede inspeccionarlo con todo detalle ;-)
Tobias
2

Después de algún tiempo, usé esta solución ...

(en el archivo .bat)

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

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

Mi solución para obtener comandos SVN fue copiar archivos .exe y .dll del directorio TortoiseSVN y pegarlos en la carpeta system32.

También puede ejecutar el comando desde el directorio TortoiseSVN y agregar la ruta del directorio de trabajo a cada comando. Por ejemplo:

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

Agregar el bin a la ruta debería hacerlo funcionar sin duplicar los archivos, pero no funcionó para mí.

KC an EE
fuente
Este enfoque no funciona, todavía se muestra'svn' is not recognized as an internal or external command
Suraj M
0

Después de seleccionar "Herramientas de línea de comando SVN" se verá así:

Ingrese la descripción de la imagen aquí

Alvin567
fuente
55
Este es el resultado deseado, sin embargo, esta respuesta no dice cómo lograrlo.
BogdanBiv