PDF de programación - Sistemas para el control de versiones

Imágen de pdf Sistemas para el control de versiones

Sistemas para el control de versionesgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 18 de Febrero del 2018)
513 visualizaciones desde el 18 de Febrero del 2018
671,2 KB
57 paginas
Creado hace 14a (20/05/2009)
UNIVERSIDAD DE CÁDIZ

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS

Sistemas para el Control de Versiones

Rosa Ma Durante Lerate
Pablo Recio Quijano

Leandro Pastrana González
Noelia Sales Montes

2

Índice general

1. Introducción a los SCV
1.1. ¿Qué es un SCV? .
.
1.2. ¿Para qué sirve un SCV? .

.

.

.

.
.

.
.

.
.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Ejemplo de grupo de desarrollo sin Sistema de Control de Versiones . . . . . . .
1.2.2. Ejemplos en el Software Libre . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Tipos de Sistemas de Control de Versiones . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. Sistemas centralizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2. Sistemas distribuidos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
1
2
2
4
5
5
5

2.1.

2. Funcionamiento para el cliente

7
Introducción al cliente en un SCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
2.1.1. Términos básicos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Ciclo de trabajo con SCV centralizado: SUBVERSION . . . . . . . . . . . . . . . . . . .
9
2.3. Ciclo de trabajo con SCV distribuido: GIT . . . . . . . . . . . . . . . . . . . . . . . . . 11

.

.

3. El servidor en Sistemas Centralizados

.

.

.

.

.

.

.

.

.

.
.
.

.
.
.
.

3.4. SUBVERSION .

15
Introducción a los Sistemas de Control de Versiones Centralizados . . . . . . . . . . . . 15
3.1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. El enfoque Centralizado .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
.
.
3.3. CVS .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
.
3.3.1.
Introducción .
3.3.2. Características
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
.
3.3.3. Estado actual del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.4. Limitaciones del protocolo CVS . . . . . . . . . . . . . . . . . . . . . . . . . . 18
.
3.3.5. Requisitos mínimos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
.
3.4.1. Ventajas .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
.
3.4.2. Carencias .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.3. Arquitectura de SUBVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.4. Componentes de SUBVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.5. Copias de trabajo .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.6. URLs del repositorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.7. Revisiones
.
3.4.8. Estado del repositorio .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.9. Ramas en un repositorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.10. El repositorio .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4.11. Instalación, configuración y uso en Debian . . . . . . . . . . . . . . . . . . . . 28
3.4.12. Utilización y manejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4.13. SUBVERSION en la web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

.
.
.

.
.
.

.
.
.

.
.
.

.

.

.

.

.

.

.

.

.

.

.

.

I

4.3. GIT .

4. El servidor en Sistemas Distribuidos

4.1.
4.2. El enfoque distribuido .

.

.

.

.

.

.

.

.

.

.

.

.

.

33
Introducción a los Sistemas de Control de Versiones Distribuidos . . . . . . . . . . . . . 33
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.1. Diferencias entre DCVS y CVS . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.2. Cómo funciona .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.3. Diferentes DCVS .
.
.
. . .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1. GIT es distribuido .
4.3.2. Ramas locales sin coste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.3. GIT es local, rápido y pequeño . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.4. El área de montaje .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.5. Diferentes flujos de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.6. Modelo de objetos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.7. Directorio GIT y directorio de trabajo . . . . . . . . . . . . . . . . . . . . . . . 40
.
4.3.8. Archivo Index .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
.
4.3.9. Uso de GIT .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.10. Que es GibHub .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.11. Primeros pasos .
4.3.12. Branch y merge .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
.

.
.
.
.
.
.

.
.
.
.
.
.

.

.

.

.

.

.

4.4. MERCURIAL .

Bibliografía y referencias

45

GNU Free Documentation License

.

.

.

.

.

.
.
.

47
1. APPLICABILITY AND DEFINITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2. VERBATIM COPYING .
.
.
.
3. COPYING IN QUANTITY .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
.
.
4. MODIFICATIONS .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
.
.
5. COMBINING DOCUMENTS .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6. COLLECTIONS OF DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7. AGGREGATION WITH INDEPENDENT WORKS . . . . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8. TRANSLATION .
9. TERMINATION .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10. FUTURE REVISIONS OF THIS LICENSE . . . . . . . . . . . . . . . . . . . . . . . . . 52
11. RELICENSING .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
. . . . . . . . . . . . . . . . . . 52
ADDENDUM: How to use this License for your documents

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.

.

.

.

.

.

.

.

.

II

Capítulo 1

Introducción a los Sistemas de Control de
Versiones

1.1. ¿Qué es un Sistema de Control de Versiones?

Un Sistema de Control de Versiones (en adelante SCV), es un software que controla y organiza las
distintas revisiones que se realizen sobre uno o varios documentos.
Pero, ¿qué es una revisión? Se podría decir que una revisión es un cambio realizado sobre un documento,
por ejemplo añadir un parrafo, borrar un fragmento o algo similar. Veamos un ejemplo:

Supongamos que cargamos en un SCV el siguiente código fuente:

#include <iostream>

int main(){

cout << "Hola, mundo!" << endl;

}

Se añade al SCV como la revisión 1 del fichero. Una vez añadido, vemos que no compila, ya que nos
falta incluir el uso del espacio de nombres, así que lo modificamos:

#include <iostream>

using namespace std;

int main(){

cout << "Hola, mundo!" << endl;

}

Se vuelve a añadir al SCV, ahora como la revisión número 2. De esta forma, se guarda el historial de
las distintas modificaciones sobre un fichero, por lo que en cualquier momento podemos restaurar la
revisión que queramos de un fichero.

Esto presenta varias ventajas, aunque la principal y la más llamativa es que nos permite mantener una
copia de seguridad de todas las modificaciones realizadas sobre un fichero, lo cual nos facilita la tarea
de deshacer algo que esté mal. Supongamos por ejemplo que modificamos un proyecto software, y
modificamos un módulo para arreglar un bug.
Ahora funciona para ese bug, pero nos hemos “cargado” otra funcionalidad más importante, que no

1

1

2

3

4

5

1

2

3

4

5

6

7

queremos perder. Simplemente volvemos a una revisión anterior, y no hay problemas.

1.2. ¿Para qué sirve un Sistema de Control de Versiones?

De forma general, se utilizan SCV para desarrollo de proyectos Software, sobre todo para realizar en
grupos de desarrollo. Vamos a analizar un poco los motivos de porque esto es así.

1.2.1. Ejemplo de grupo de desarrollo sin Sistema de Control de Versiones

Supongamos un grupo de 5 desarrolladores, que están realizando un proyecto. Puede ser que el proyecto
esté muy claro qué partes tiene que hacer cada uno, pero esto no suele ser así.

Estos desarrolladores van subiendo a un servidor tipo FTP las distintas modificaciones que realizan sobre
el código. Uno sube un fichero fuente claseA.h, otro entrada-salida.cpp, etc...
Sin embargo, llegará un momento en el que dos desarrolladores modifiquen el mismo fichero. Veamos
un ejemplo claro, con el siguiente código:

#include <iostream>

using namespace std;

int main(){

int *v = {1,2,3,5,9,10,3,2}; // esto no es correcto para el compilador,

// pero nos vale conceptualmente.

int a = 7 ,b = 3;

// -------- Swap entre a y b
int aux = a;
a = b;
b = aux;
//--------------------------
//------- Maximo de *v -----
int max = v[0];
for (int i = 0; i < 8 ; i++){

if (v[i] > max){

max = v[i];

}

}
//--------------------------

cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "max de v = " << max << endl;

}

Ahora, el desarrollador Pepe decide modular algo más el código y añadir una función que realize el swap
de dos variables enteras, quedando el siguiente código:

#include <iostream>

using namespace std;

void swap(int &a, int &b);

2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

1

2

3

4

5

6

7

8

9

10

11
  • Links de descarga
http://lwp-l.com/pdf8863

Comentarios de: Sistemas para el control de versiones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad