GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de Subversion:10 comandos SVN más utilizados con ejemplos

SVN significa Subversión.

Subversion es un sistema de control de versiones gratuito/de código abierto. Subversion administra archivos y directorios a lo largo del tiempo. Un árbol de archivos se coloca en un repositorio central. El repositorio es muy parecido a un servidor de archivos común, excepto que recuerda todos los cambios realizados en sus archivos y directorios. Esto le permite recuperar versiones anteriores de su código o examinar el historial de cómo se modificó su código.

Este artículo explica algunos comandos SVN básicos con ejemplos.

Copia de trabajo de SVN

SVN es un repositorio que contiene todos nuestros datos versionados, que también se denomina servidor SVN. Programa cliente SVN que gestiona reflejos locales de porciones de esos datos versionados que se denomina copia de trabajo. El cliente SVN puede acceder a su repositorio a través de redes. Varios usuarios pueden acceder al repositorio al mismo tiempo.

1. Pago SVN:crear una copia de trabajo

El comando de pago se usa para descargar fuentes del repositorio SVN a una copia de trabajo. Si desea acceder a los archivos desde el servidor SVN, la verificación es la primera operación que debe realizar.

SVN checkout crea la copia de trabajo, desde donde puede editar, eliminar o agregar contenido. Puede retirar un archivo, directorio, tronco o proyecto completo. Para pagar, debe conocer la URL de los componentes que desea pagar.

Syntax:

$ svn checkout/co URL PATH
  • URL es la URL de los componentes a pagar
  • Si se omite PATH, el nombre base de la URL se usará como destino. Si se proporcionan varias URL, cada una se extraerá en un subdirectorio de PATH, siendo el nombre del subdirectorio el nombre base de la URL.

El siguiente ejemplo extrae el directorio del directorio de destino dado.

$ svn co https://www.thegeekstuff.com/project/branches/release/migration/data/cfg /home/sasikala/cfg/
A    /home/sasikala/cfg/ftp_user.cfg
A    /home/sasikala/cfg/inventory.cfg
A    /home/sasikala/cfg/email_user.cfg
A    /home/sasikala/cfg/svn-commands
Checked out revision 811.

$ ls /home/sasikala/cfg
.  ..  .svn  email_user.cfg  ftp_user.cfg  inventory.cfg  svn-commands

Cuando realiza un pago, crea un directorio oculto llamado .svn, que tendrá los detalles del repositorio.

2. Confirmación de SVN:guardar los cambios en el repositorio

Cada vez que realice cambios en la copia de trabajo, no se reflejará en el servidor SVN. Para que los cambios sean permanentes, debe realizar la confirmación de SVN.

Syntax:

$ svn commit -m "log messages"

Explique por qué está cambiando el archivo en la opción -m.

Por ejemplo, en mi copia de trabajo, el archivo llamado "svn-commands" tiene el siguiente contenido.

$ cat /home/sasikala/cfg/svn-commands
checkout
commit
add
delete
update
status

$ ls -l /home/sasikala/cfg/svn-commands
-rw-r--r--  1 root root 41 Apr 16 11:15 svn-commands

Hice un cambio en este archivo (por ejemplo, dejar este archivo vacío).

$ ls -l svn-commands
-rw-r--r--  1 root root 0 Apr 16 11:20 svn-commands

Ahora confirme el archivo para que los cambios sean permanentes en el servidor.

$ svn commit -m "Making the file empty" svn-commands
Sending        svn-commands
Transmitting file data .
Committed revision 813.

Después de esto, cada vez que actualice su copia de trabajo o finalice la compra, los cambios aparecerán en el servidor.

3. Lista SVN:enumera las entradas del directorio

svn list es útil cuando desea ver el contenido del repositorio SVN, sin descargar una copia de trabajo.

Syntax:

$ svn list

El siguiente ejemplo enumera todos los archivos disponibles en la URL dada en el repositorio sin descargar una copia de trabajo. Cuando ejecuta el comando svn list con la opción –verbose, muestra la siguiente información.

  • Número de revisión de la última confirmación
  • Autor de la última confirmación
  • Tamaño (en bytes)
  • Fecha y hora de la última confirmación
$ svn list --verbose https://www.thegeekstuff.com/project/branches/release/migration/data/bin
 16 sasikala	28361 	Apr 16 21:11 README.txt
 21 sasikala 	0 	Apr 18 12:22 INSTALL
 22 sasikala		Apr 18 10:17 src/

4. Añadir SVN:añade un nuevo archivo al repositorio de SVN

Cuando desee agregar un nuevo archivo (o directorio) al repositorio, debe usar el comando Agregar SVN. El repositorio tendrá un archivo recién agregado, solo cuando realice la confirmación de SVN. Ahora agreguemos un nuevo archivo llamado "thegeekstuff" a nuestro repositorio.

  • Crear un archivo en una copia de trabajo local
  • $ ls -l /home/sasikala/cfg/thegeekstuff
    -rw-r--r--  1 sasikala root 8 Apr 16 11:33 thegeekstuff
  • Agregue el archivo al repositorio SVN
  • svn add filename agregará los archivos al repositorio SVN.

    $ svn add thegeekstuff
    A         thegeekstuff
  • Confirmar el archivo agregado
  • Hasta que confirme, el archivo agregado no estará disponible en el repositorio.

    $ svn commit -m "Adding a file thegeekstuff" thegeekstuff
    Adding         thegeekstuff
    Transmitting file data .
    Committed revision 814.

5. Eliminar SVN:eliminar un archivo del repositorio

El comando SVN delete elimina un elemento de la copia de trabajo (o repositorio). El archivo se eliminará del repositorio cuando realice una confirmación de SVN.

Syntax:
$ svn delete URL

Ahora eliminemos el archivo creado recientemente llamado "thegeekstuff".

$ svn delete thegeekstuff
D         thegeekstuff

$ svn commit -m "Removing thegeekstuff file" thegeekstuff
Deleting       thegeekstuff
Committed revision 814.

Ahora puede hacer la lista svn y verificar si el archivo se eliminó del repositorio.

6. SVN Diff:muestra la diferencia

SVN diff muestra las diferencias entre su copia de trabajo y la copia en el repositorio de SVN. Puede encontrar la diferencia entre dos revisiones y dos caminos, etc.,

Syntax:
$ svn diff filename

$ svn -r R1:R2 diff filename

El ejemplo anterior compara el nombre de archivo@R1 y el nombre de archivo@R2.

Ahora el contenido del archivo thegeekstuff se ve así,

$ cat /home/sasikala/cfg/thegeekstuff
testing

Edité el contenido del archivo geekstuff de testing a tester, que se muestra a continuación usando el comando svn diff.

$ svn diff thegeekstuff
Index: thegeekstuff
===================================================================
--- thegeekstuff   (revision 815)
+++ thegeekstuff   (working copy)
@@ -1 +1 @@
-testing
+tester

7. Estado SVN:estado de la copia de trabajo

Utilice el comando svn status para obtener el estado del archivo en la copia de trabajo. Muestra si la copia de trabajo se modificó, se agregó/eliminó, o si el archivo no está bajo control de revisión, etc.

Syntax:

$ svn status PATH

El siguiente ejemplo muestra el estado de mi copia de trabajo local,

$ svn status /home/sasikala/cfg
M    	/home/sasikala/cfg/ftp_user.cfg
M      	/home/sasikala/cfg/geekstuff

'M' representa que el elemento ha sido modificado. El comando "svn help status" explicará varios especificadores que se muestran en el comando de estado SVN.

8. Registro SVN:muestra el mensaje de registro

Como discutimos al comienzo de este artículo, SVN recuerda cada cambio realizado en sus archivos y directorios. Para conocer todas las confirmaciones realizadas en un archivo o directorio, use el comando de registro SVN.

Syntax:

$ svn log PATH

A continuación se muestran todas las confirmaciones realizadas en el archivo geekstuff

$ svn log thegeekstuff
------------------------------------------------------------------------
r815 | sasikala | 2011-04-16 05:14:18 -0700 (Sat, 16 Apr 2011) | 1 line

Adding a file thegeekstuff
------------------------------------------------------------------------

Dado que solo hicimos una confirmación en el archivo thegeekstuff, muestra solo un mensaje de registro con los detalles.

9. Mover SVN:cambiar el nombre del archivo o directorio

Este comando mueve un archivo de un directorio a otro o cambia el nombre de un archivo. El archivo se moverá a su sandbox local inmediatamente (así como al repositorio después de confirmar).

Syntax:
$ svn move src dest

El siguiente comando cambia el nombre del archivo "thegeekstuff" a "tgs" de un solo golpe.

$ svn move thegeekstuff tgs
A         tgs
D         thegeekstuff

$ ls
.#  ..  .svn  email_user.cfg  ftp_user.cfg  inventory.cfg  tgs

Ahora el archivo se renombra solo en la copia de trabajo, no en el repositorio. Para que los cambios sean permanentes, debe confirmar los cambios.

$ svn commit -m "Renaming thegeekstuff to tgs" tgs
Adding         tgs
Transmitting file data .
Committed revision 816.

10. Actualización de SVN:actualice la copia de trabajo.

El comando svn update trae los cambios del repositorio a su copia de trabajo. Si no se especifica ninguna revisión, actualiza su copia de trabajo con la revisión HEAD. De lo contrario, sincroniza la copia de trabajo con la revisión dada en el argumento.

Siempre antes de comenzar a trabajar en su copia de trabajo, actualice su copia de trabajo. Para que todos los cambios disponibles en el repositorio estén disponibles en su copia de trabajo. es decir, los últimos cambios.

Syntax:

$ svn update PATH

En caso de que algún otro usuario agregue/elimine un archivo en la URL, https://www.thegeekstuff.com/project/branches/release/migration/data/cfg, su copia de trabajo no tendrá esos archivos de forma predeterminada, hasta que actualice su trabajo. copiar.

$ svn update
A  new/usercfg
A  new/webcfg
Updated to revision 819.

En el resultado del comando de actualización svn anterior, A representa que este archivo se "Agregó" a la copia de trabajo.


Linux
  1. Más de 10 comandos de Linux VI con ejemplos

  2. Tutorial de comandos de expansión y desexpansión con ejemplos

  3. vim Tutorial con ejemplos de comandos

  4. Los comandos de Linux más simples con 10 ejemplos

  5. El último tutorial de Bash Array con 15 ejemplos

Comandos de Nmap con ejemplos

Comandos RPM en Linux con ejemplos

Comandos SSH en Linux con ejemplos de uso

Youtube-dl Tutorial Con Ejemplos Para Principiantes

El tutorial del comando fc con ejemplos para principiantes

Tutorial de comando de búsqueda de Linux (con ejemplos)