
Estoy trabajando en una Mac y recientemente actualicé Xcode, en esta actualización instala la última versión subversion 1.9.x
como instalación principal. Esto estaría bien, pero en el trabajo lo usamos 1.8.x
y esta versión más nueva es incompatible.
Lo ideal sería volver a cambiar la subversión principal a 1.8.x, pero no tengo claro cómo progresar. Lo que he hecho hasta ahora es instalar la versión correcta a través del administrador de paquetes (Homebrew) en /usr/local/opt/subversion
.
Esto está bien para mi IDE porque puedo apuntar a la carpeta ./bin. Sin embargo, si quiero trabajar en la terminal, lo cual hago a menudo, la versión es 1.9.x.
Como solución alternativa, he creado un alias en mi archivo ./bash_profile
de la siguiente manera .alias svn=/usr/local/opt/[email protected]/bin/svn
Ahora, cuando abro la terminal y ejecuto, svn --version
aparece lo siguiente.
svn, version 1.8.16 (r1740329) compiled Apr 2 2017, 22:11:27 on x86_64-apple-darwin15.6.0
Lo cual es perfecto, pero siento que me falta algo, hay otros binarios que uso de vez en cuando y detesto ponerles alias a todos. Parece que debería haber una manera mejor, pero no estoy muy seguro de mover las cosas a nivel raíz.
¿Es posible reasignar la versión funcional de Subversion? Quizás algo así como use svn --path ....
.
Respuesta1
Mientras edita, agregar la $PATH
variable de entorno es una opción en términos de establecer el orden de preferencia para los archivos binarios que le gustaría usar. Puede que esto no sea del todo necesario.
Cuando ejecuta svn up
desde la terminal una copia de trabajo con una subversión que no coincide, recibirá el siguiente mensaje.
svn: E155036: Please see the 'svn upgrade' command
La experiencia pasada de ejecutar comandos a ciegas me pone nervioso, pero después de investigar las máquinas de varios compañeros de trabajo, queda claro que la incompatibilidad es con la copia de trabajo y no con el servidor VCS.
Para resolver la discrepancia, simplemente puede ejecutar svn upgrade
. Después de esto podrás ejecutar svn up
y la actualización debería continuar sin problemas.
Si todo lo demás falla, aún puede forzar el uso de una versión específica del svn
binario estableciendo la ruta a su carpeta de subversión en la $PATH
variable de entorno.
p.ejexport PATH=/usr/local/opt/[email protected]/bin:/usr/bin:/bin:$PATH
Lo que realmente no me tomé el tiempo de entender antes es que $PATH
contiene la ubicación de los archivos binarios a los que desea que se pueda acceder desde la línea de comando. Cuanto más cerca del frente de la cadena esté el binario de su elección, se determina el orden en el que se seleccionan.
Si una carpeta ya no está disponible, creo que debería pasar en cascada a la siguiente ubicación.