¿Cómo configuro y accedo a mi repositorio de Subversion después de instalar Subversion en mi servidor dedicado GoDaddy CentOS?
-
26-10-2019 - |
Pregunta
Instalé subversion con éxito en mi servidor.Cuando ejecuto el comando:
which svn
Recibo la respuesta:
/usr/bin/svn
Creo un repositorio dentro de mi directorio raíz que es mi carpeta httpdocs con el siguiente comando:
svnadmin create ~/svn
Creé con éxito los siguientes archivos y carpetas y los configuré y veo los siguientes archivos y directorios dentro del directorio svn:
conf db format hooks locks README.txt
Pero no puedo crear directorios troncales, de ramas y de etiquetas.De hecho, no puedo crear directorios y punto.Aquí está el comando que he estado usando:
svn mkdir file:///httpdocs/svn/site
Cuando hago este comando el mensaje que me sale es el siguiente:
svn: Could not use external editor to fetch log message; consider setting the
$SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no
'editor-cmd' run-time configuration option was found
También cuando escribo la URL:
http://mydomain.com/svn
Recibo el siguiente mensaje:
404 - Not Found
¿Qué debo hacer para configurar mi repositorio? Verificar si mi repositorio realmente está funcionando.Ah, y ejecuté el siguiente comando:
svnserve -d
Solución
Creo un repositorio dentro de mi directorio raíz que es mi carpeta httpdocs con el siguiente comando...
No es así como consigues que Subversion funcione con Apache httpd si eso es lo que estás intentando hacer.Necesita los módulos mod_dav y mod_dav_svn para Apache.Es posible que tengas que recompilar Apache para obtenerlos.
Una vez que haya instalado mod_dav y mod_dav_svn, necesitará configurar su archivo httpd.conf (o colocar un archivo de configuración debajo de su httpd). conf.d
dependiendo de cómo esté configurado en su sistema) para que funcione.
Al final, no es tan difícil.La mayoría de las instalaciones de Apache tienen mod_dav y mod_dav_svn agregados, y puede ver si su archivo http.conf está configurado correctamente.El manual de Subversion en línea tendrá todo lo que necesitas para que funcione.
svn:No se pudo utilizar el editor externo para recuperar el mensaje de registro;Considere establecer la variable de entorno $ svn_Editor o usar las opciones--Message (-m) o--File (-f) Svn:Ninguna de las variables de entorno SVN_EDITOR, Visual o Editor está configurado, y no se encontró la opción de configuración de tiempo de ejecución de 'Editor-CMD'
Leer el mensaje.Dice No se pudo utilizar el editor externo porque no especificaste ninguno.Nuevamente el manual en línea de Subversion lo explica en detalle.
Básicamente, cuando confirmas un cambio en Subversion, necesitas crear un mensaje de confirmación.Esto se puede hacer de dos formas:
- tu usas el
-m
opción comosvn commit -m "This is my commit message"
. - Tu estableces las variables
SVN_EDITOR
,VISUAL
, oEDITOR
al nombre del programa que desea utilizar.Por ejemplo, en Windows, diríasC:> set EDITOR=notepad.exe
.En Unix, dirías algo como$ export EDITOR=vi
.Subversion primero verifica el valor delSVN_EDITOR
variables, entoncesVISUAL
, entoncesEDITOR
.Si ninguno de ellos está configurado, le dará el error que vio.
¿Por qué lo pusiste en el svn mkdir
¿dominio?
Debido a que utiliza la forma URL del comando, creará el directorio y luego confirmará el cambio, de ahí la necesidad de un mensaje de confirmación.Esto debería funcionar:
svn mkdir -m"Adding the site directory to my repository" file:///httpdocs/svn/site
Ahora, necesita sacar su repositorio de su directorio HTTPDOC.Es algo muy malo porque daña su servidor web.
Si no quieres usar el file://
protocolo, puede utilizar svnserve
.Este es un servidor de repositorio integrado de Subversion y utiliza el svn://
protocolo.Observar:
$ svnadmin create my_repos #Creates the repository
$ vi my_repos/conf/svnserve.conf #See footnote 1 below
$ vi my_repos/conf/passwd #See footnote 1 below
$ svnserve -r my_repos -d
$ svn mkdir -m "Making basic directory layout svn://localhost/trunk \
> svn://localhost/tags svn://localhost/branches
$ export SVN_EDITOR="vi"
Su repositorio también será accesible para todas las máquinas de su red.Usar svnserve es mucho más simple que Apache httpd, pero existen algunos problemas:
- No puedes ejecutar múltiples instancias de
svnserve
ya que quiere usar el puerto 3690 y no le gusta compartir.Con Apache httpd, puedes tener múltiples repositorios. - La configuración de seguridad con svnserve es limitada.Con Apache, puedo usar el directorio activo de Windows o LDAP o puedo configurarlo manualmente.
- A algunos navegadores de repositorios de Subversion basados en web no les gusta svnserve.
Por cierto, si no lo has hecho, consulta el Subversion manual en línea.Es uno de los mejores manuales que he visto para cualquier proyecto de código abierto.
1 Cuando configuras tu repositorio usando svnserve
, necesitas editar el svnserve.conf
archivo habilitando la línea password-db = passed
que se trata de la línea n.° 20 del archivo.Luego hay que editar el passed
archivo (ubicado en el mismo directorio) para configurar los usuarios y sus contraseñas.Ambos son muy sencillos, pero fáciles de olvidar, y si no lo hace, no podrá guardar nada en su repositorio.
Otros consejos
Cuando necesite ramas y etiquetas del tronco de lo que debe necesitar la descarga import_dirs.copy
que después que cd /location/import_dirs.copy
que ejecutar que comando
cd /data/svn/import_dirs.copy/
svn import file:///location of repos/reposname/ -m "inital message"
Este es el ejemplo de ello .....
cd /home/raj/import_dirs.copy/
svn import file:///srv/svn/nmg/ -m "inital message"
que se han realizado ramas y etiquetas del tronco