Apache Subversion (conocido comúnmente como SVN) es un sistema de control de versiones de código abierto muy popular. Un sistema de control de versiones le permite registrar cambios en un archivo o conjunto de archivos durante un período de tiempo para que pueda recuperar versiones específicas cuando sea necesario.
Para tener el control de versiones de su proyecto, primero debe instalar el servidor SVN en su Ubuntu máquina.
Instalación del servidor SVN en Ubuntu 18.04 LTS
Aquí vamos a instalar y configurar la subversión de Apache en Ubuntu 18.04 LTS.
Paso 1. Instalar Apache
Antes de continuar con la instalación, primero actualicemos el repositorio.
sudo apt-get update
sudo apt-get install apache2
Verifique el estado de apache.
sudo systemctl status apache2
Si el servicio aún no se ha iniciado, entonces .inicie Apache.
sudo systemctl start apache2
Habilite Apache en el arranque del sistema.
sudo systemctl enable apache2
Verifique la instalación de Apache. Simplemente abra su navegador web y escriba la IP del servidor web o el nombre de host. Si puede ver la página predeterminada de Apache, la instalación de Apache se realizó correctamente.
Paso 2. Instalar Apache Subversion
Instale subversion y los paquetes requeridos
sudo apt-get install subversion libapache2-mod-svn
Después de la instalación, habilita automáticamente los módulos SVN necesarios (dav_module, dav_svn_module, authz_svn_module).
Lista de los módulos habilitados
sudo apachectl -M
Si los módulos svn no están habilitados. ejecute los siguientes comandos y habilítelo
sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod authz_svn
Después de habilitar esos módulos, debemos reiniciar el servicio Apache.
sudo service apache2 restart
Paso 3. Configurar Apache Subversion
Ahora vamos a crear el repositorio SVN. Aquí usamos el directorio “/opt” para crear nuestro repositorio.
Crear directorio svn.
sudo mkdir -p /opt/svn
Crear repositorio svn. Aquí creamos un repositorio llamado “fosslinuxrepo”
sudo svnadmin create /opt/svn/fosslinuxrepo
Cambiando la propiedad del repositorio.
sudo chown -R www-data:www-data /opt/svn/fosslinuxrepo/
Cambiando permisos del repositorio.
sudo chmod -R 775/ opt/svn/fosslinuxrepo
Agregar usuarios de Subversion. Aquí creamos un archivo de contraseña en el directorio "/etc".
sudo htpasswd -cm /etc/svn-auth-users fosslinux
Cree el segundo usuario.
sudo htpasswd -m /etc/svn-auth-users fosslinux2
Cree un archivo de host virtual de Apache para SVN; para hacer esto, primero debemos cambiar el directorio a "/etc/apache2/sites-disponible/"
cd /etc/apache2/sites-available/
Cree un archivo de host virtual y aquí creamos un archivo llamado "fosslinuxsvn.conf".
sudo vim fosslinuxsvn.conf
Agregue las siguientes líneas al archivo.
<VirtualHost *:80> ServerName svn.fosslinux.com ServerAlias svn.fosslinux.com <Location /svn> DAV svn SVNParentPath /opt/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/svn-auth-users Require valid-user </Location> ErrorLog ${APACHE_LOG_DIR}/svn.fosslinux.com-error.log CustomLog ${APACHE_LOG_DIR}/svn.fosslinux.com-access.log combined </VirtualHost>
Cambie “svn.fosslinux.com” por su nombre de host.
Guarde y salga del archivo.
Deshabilitar el archivo de host virtual predeterminado.
sudo a2dissite 000-default.conf
Habilite el archivo de host virtual recién creado.
sudo a2ensite fosslinuxsvn.conf
Verifique la sintaxis de apache.
sudo apachectl -t
Luego reinicie Apache.
sudo systemctl restart apache2
Paso 4. Pruebe la subversión de Apache configurada
Abra el navegador web, escriba la URL del repositorio y presione Intro.
http://svn.fosslinux.com/svn/fosslinuxrepo/
Reemplace sv.fosslinux.com con su nombre de host.
Cuando aparezca la pantalla emergente de autenticación, ingrese el nombre de usuario y la contraseña ya creados para acceder al repositorio svn.
Ahora puedes ver el repositorio creado.
Ahora vamos a crear un proyecto llamado "RnD_works" dentro del repositorio.
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works -m "added RnD_works repository"
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works/trunk -m "added RnD_works trunk repository"
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works/branches -m "added RnD_works branches repository"
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works/tags -m "added RnD_works tags repository"
Verifiquemos si este nuevo proyecto se puede ver dentro del repositorio.
Haga clic y abra "RnD_works"
Si desea eliminar un proyecto creado, puede usar el siguiente comando para eliminarlo.
svn delete file:///opt/svn/fosslinuxrepo/RnD_works -m "delete RnD_works repository"
Paso 5. Programe la copia de seguridad del repositorio
Crea una carpeta de copia de seguridad.
sudo mkdir -p /etc/backcups
Cambiar usuario a usuario root.
sudo su -
Editar crontab.
crontab -e
En el siguiente comando, programamos la copia de seguridad de svn a medianoche todos los días.
0 0 * * * svnadmin dump /opt/svn/fosslinuxrepo > /etc/backcups/svnbackups-$(date +%Y%m%d).dump
Luego guarde y salga.
Paso 6. Restaurar repositorio
Si necesita restaurar el repositorio svn desde el archivo de copia de seguridad, use los siguientes comandos.
Crea un nuevo repositorio.
svnadmin create /opt/svn/restorerepo
Restaurar copia de seguridad:
svnadmin load /opt/svn/restorerepo < /etc/backups/svnbackups-20190204.dump
Eso es todo. Esperamos que este artículo le haya ayudado a configurar Subversion con éxito. Si tiene alguna pregunta o comentario, visite la sección Comentarios a continuación.