SVN - Revisar cambios
Jerry ya agregó el archivo array.c al repositorio. Tom también revisa el código más reciente y comienza a trabajar.
[[email protected] ~]$ svn co http://svn.server.com/svn/project_repo --username=tom
El comando anterior producirá el siguiente resultado.
A project_repo/trunk
A project_repo/trunk/array.c
A project_repo/branches
A project_repo/tags
Checked out revision 2.
Pero descubrió que alguien ya había agregado el código. Por lo que tiene curiosidad por saber quién hizo eso y revisa el mensaje de registro para ver más detalles usando el siguiente comando:
[[email protected] trunk]$ svn log
El comando anterior producirá el siguiente resultado.
------------------------------------------------------------------------
r2 | jerry | 2013-08-17 20:40:43 +0530 (Sat, 17 Aug 2013) | 1 line
Initial commit
------------------------------------------------------------------------
r1 | jerry | 2013-08-04 23:43:08 +0530 (Sun, 04 Aug 2013) | 1 line
Create trunk, branches, tags directory structure
------------------------------------------------------------------------
Cuando Tom observa el código de Jerry , inmediatamente nota un error en eso. Jerry no estaba comprobando el desbordamiento de la matriz, lo que podría causar problemas graves. Entonces Tom decide solucionar este problema. Después de la modificación, array.c se verá así.
#include <stdio.h>
#define MAX 16
int main(void)
{
int i, n, arr[MAX];
printf("Enter the total number of elements: ");
scanf("%d", &n);
/* handle array overflow condition */
if (n > MAX) {
fprintf(stderr, "Number of elements must be less than %d\n", MAX);
return 1;
}
printf("Enter the elements\n");
for (i = 0; i < n; ++i)
scanf("%d", &arr[i]);
printf("Array has following elements\n");
for (i = 0; i < n; ++i)
printf("|%d| ", arr[i]);
printf("\n");
return 0;
}
Tom quiere usar la operación de estado para ver la lista de cambios pendientes.
[[email protected] trunk]$ svn status
M array.c
El archivo array.c está modificado, por eso Subversion muestraMletra antes del nombre del archivo. A continuación, Tom compila y prueba su código y está funcionando bien. Antes de realizar cambios, quiere volver a comprobarlo revisando los cambios que realizó.
[[email protected] trunk]$ svn diff
Index: array.c
===================================================================
--- array.c (revision 2)
+++ array.c (working copy)
@@ -9,6 +9,11 @@
printf("Enter the total number of elements: ");
scanf("%d", &n);
+ if (n > MAX) {
+ fprintf(stderr, "Number of elements must be less than %d\n", MAX);
+ return 1;
+ }
+
printf("Enter the elements\n");
for (i = 0; i < n; ++i)
Tom ha agregado algunas líneas en el archivo array.c , por eso Subversion muestra + firmar antes de nuevas líneas. Ahora está listo para realizar sus cambios.
[[email protected] trunk]$ svn commit -m "Fix array overflow problem"
El comando anterior producirá el siguiente resultado.
Sending trunk/array.c
Transmitting file data .
Committed revision 3.
Los cambios de Tom se han enviado con éxito al repositorio.