Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Control de Versiones
Derechos de Autor: La elaboración de este docum ento y sus diferentes com ponentes estuvo a cargo del Grupo de
Gestión de Sistemas de Información de la Oficina de Tecnologías y Sistemas de Información del Departamento
Nacional de Planeación, D N P, razón por la cual los Derechos de Autor y en lo particular los derechos patrimoniales
de este docum ento y su contenido pertenece exclusivam ente al DNP. Por lo tanto, su uso y reproducción por terceros,
está sujeto a la autorización expresa de la Oficina de Tecnologías y Sistem as de Información, OTSI del DNP en
cumplim iento de la Ley 23 de 1982 y demás que la modifican o adicionan. Siendo así, este docum ento está protegido
por Derechos de Autor y no pueden ser copiados, ni reproducidos, ni distribuidos por personas o Entidades diferentes
al DNP.
C O D IG O :
GUIA PARA LA GESTION DE CONTROL
««■
eS d e tO d O S
Departamento
Nacional
Nacional de
de Pls
Planeación DE CÓDIGO FUENTE PAGINA: 3 de 16
VERSIÓN:
TABLA DE CONTENIDO
1. OBJETIVO....................................................................................................................................4
2. ALCANCE.....................................................................................................................................4
3. TÉRMINOS Y DEFINICIONES...................................................................................................4
4. G IT................................................................................................................................................. 5
4.1 Configuración del G IT ........................................................................................................ 5
5. TFS V C ....................................................................................................................................... 11
5.2 Configuración la ruta lo c a l ..............................................................................................11
1. OBJETIVO
En el presente documento tiene como objetivo dar a conocer el procedimiento en la gestión de control de código
fuente en la elaboración y ejecución de un proyecto dentro del Grupo de Gestión de Sistem as de Información
del Departamento Nacional de Planeación - DNP.
2. ALCANCE
Brindar una guía para ser aplicada desde los roles Líder Técnico, Líder de Desarrollo o quién designe el Jefe
de la dependencia o en su defecto la firm a externa contratada si aplica.
3. TÉRMINOS Y DEFINICIONES
- Control de versiones. Corresponde a la gestión de los diversos cambios que se realizan sobre
elem entos de algún producto.
- TFS VC. Ayuda a la gestión de equipos de manera colaborativa, también ofrece control de versiones
sobre los desarrollos.
- Ramas. Es un control de versiones que registra los cambios realizados a lo largo del tiempo, de modo
que puede recuperar versiones especificas más adelante. Por defecto se tiene una rama llamada
"m aster” que es la versión estable del producto.
- Ramas puntuales. Tiene la misma característica que la rama pero su ciclo de vida llega hasta cuando
se fusiona con otra rama, elim inándola del control de versiones.
- Épica. Una Épica puede ser vista como una historia de usuario de alta complejidad (petición de
negocio de alto nivel y complejidad). Para elaborarla se puede requerir un esfuerzo muy grande y no
puede ser cubierta en un Sprint. Una épica debido a su gran tamaño es difícil de estimar y de abordar,
así que es necesario descom ponerla en varias características e historias. Im plem entar una épica suele
llevar dos o más sprints.
- Historia de Usuario. Una historia de usuario representa una necesidad de negocio que puede ser
implem entada en un sprint y aporta valor al producto. Al final del sprint la historia añade una nueva
funcionalidad o característica al producto y puede ser candidata para pasar a producción.
4. PRE-REQUISITOS
En Azure DevOps Server maneja perm isos como "Readers” , "Contributors” y "Adm inistrators” en los
repositorios, en este caso, se debe tener en cuenta que el Líder de Desarrollo o quién designe el Jefe de la
dependencia o en su defecto la firm a externa contratada si aplica, debe m anejar el permiso de "Contributors” .
Para cualquier sistem a de control de versiones m oderno tiene algún mecanismo para soportar el uso de ramas.
Cuando se habla de ramificaciones, significa que se tom a la rama principal de desarrollo (master) y a partir de
ahí continúa trabajando sin seguir la rama principal de desarrollo. Para este caso se m anejará la rama
"m aster” (producción), "qa” (pruebas), "develop” (desarrollo), "tb-n” (historias de usuario), según la figura 1.
Teniendo en cuenta lo anterior se explicará el versionam iento de código fuente desde GIT y TFSVC.
5. GIT
Se debe inicializar y configurar el nombre y correo de quien realizará el control de versiones. Ver figura 2.
Para la clonación del repositorio se requiere tener las credenciales y perm isos dados por el Líder Técnico del
Grupo de Gestión de Sistem as de Información del Departamento Nacional de Planeación.
Una vez tenga los permisos, ingresa a la terminal y clona el repositorio como se ve en la figura 3.
repositorios
[js e rn a m e
Gít: https://tfs.d n p .g o v.c o (Press 'E n ter' to co n firm o r 'E scape' to cancel)
Una vez se clone el repositorio a su terminal local, de debe ubicar en el directorio y con el comando de "log”
puede ver el detalle de quienes han hecho "commit” al proyecto. Ver figura 4.
0 EXPLORER
v OPEN EDITO RS
* * index.php X
w in d e x .p h p > ...
p X W index.php
V GGSI.PRUEBAPILOTO.PHP 1
2
Cesar Gómez, 13 days ago 11 author (Cesar Gómez)
@!DOCTYPE h t m lg
< h tm l la n g = " e n " >
* in d e x .p tip
p © RE A D M E .m d
3
4
<h ea d>
< m e ta c h a r s e t= " U T F - 8 " >
5 < m e ta n g m e = " v ie w p o r t" c o n t e n t = " w i d t h = d e v i c e - ii r id t h , i n i t i a l - s c a l e = l . 0 " >
6 < t it l e > P r u e b a d e c o n e e p t o < / t it le >
8 7 < /h e a d >
8 <body>
9 <p>E& u n a p r u e b a < /p >
a ?
10 < /b o d y >
11 « = /h tm l>
x -
PROBLEMS OUTPUT DEBUG CONSOLE TERMINAL 1:bash
$
T h e d e f a u l t i n t e r a c t i v a s h e l l i s now z s h .
T o u p d a te y o u r a c c o u n t t o u s e z s h , p le a s e r o n " c h s h - s / b i n / z s h " .
F o r m ore d e t a i l s , p le a s e v i s i t h t tp s : //s u p p o r t.a p p le .c o m /k b / H T 2 0 B fl5 6 .
* C e s a rs -M a c B o o k -P ro :G G S I.P ru e b a P ilo to _ P H P c e s a r g o m e z p e r illa S g i t lo g — p r e t t y = o n e li n e
a 4 e 0 5 9 d f f8 f 5 0 4 6 1 7 4 a llb 4 b b 3 b lfd 4 b f7 0 38 45 9 ÍHEAD - > m a s te r , o r i g i n / m a s t e r , o r ig in / H E flD ) S e i n i c i a l i z a e l p r o y e c to e n l a ram a d e s a r r o l l o
6 a 5 2 1 3 c d 6 6 d 7 2 2 1 4 2 7 d l2 3 fa b d a 7 4 f2 a 2 8 4 d f4 9 e A dded README.md f i l e
57 C e s a rs -M a c B o o k -P ro :G G S I,P ru e b a P ilo to _ P H P c e s a r g o m e z p e r illa S |
Para iniciar la codificación se debe crear la rama con el nombre "develop”, el cual se hará todas las integraciones
de las historias de usuario del proyecto, para los desarrolladores puedan trabajar sin ningún problem a y
desplegar los avances. Ver figura 5.
T h e d e f a u l t i n t e r a c t i v e s h e l l i s now z s h .
T o u p d a te y o u r a c c o u n t t o u s e z s h , p le a s e r u n 'c h s h - s / b i n / z s h ' .
F o r m o re d e t a i l s , p le a s e v i s i t h t t p s : / / s u p p o r t . a p p l e . c o m / k b / H T 2 0 8 0 5 0 .
C e s a rs -M a c B o o k - P ro :G G S I.P r u e b a P ilo to _ P H P c e s a r g o m e z p e r illa $ g i t lo g — p r e t t y = o n e l i n e
a 4 e 0 5 9 d ff8 f 5 0 4 6 1 7 4 a llb 4 b b 3 b lf d 4 b f 7 0 3 8 4 5 9 (HEAD - > m a s t e r , o r i g i n / m a s t e r , o r ig in /H E A D ) Se i n i c i a l i z a e l p ro y e c to en la rama d e s a r r o l l o
6 a 5 2 1 3 c d 6 6 d 7 2 2 1 4 2 7 d l2 3 fa b d a 7 4 f2 a 2 8 4 d f4 9 e A d d e d README.md f i l e
C e s a rs -M a c B o o k - P r o :G G S Ip P r u e b a P ilo to _ P H P c e s a r g o m e z p e r illa $ g i t b r a n c h
* m a s te r
C e s a rs -M a c B o o k - P ro :G G S I.P r u e b a P ilo to _ P H P c e s a r g o m e z p e r illa $ g i t b r a n c h d e v e lo p
C e s a rs -M a c B o o k - P ro :G G S I.P r u e b a P ilo to _ P H P c e s a r g o t n e z p e r illa $ g i t b r a n c h
d e v e lo p
* m a s te r
C e s a rs -M a c B o o k -P ro :G G S l.P r u e b a P ilo to _ P H P c e s a r g o m e z p e r illa $ g i t c h e c k o u t d e v e lo p
S w itc h e d t o b r a n c h 'd e v e l o p '
C e s a rs -M a c B o o k - P ro :G G S I.P r u e b a P ilo to _ P H P c e s a r g o m e z p e r illa $ g i t b r a n c h
* d e v e lo p
m a s te r
C e s a rs -M a c B o o k -P ro :G G S l.P r u e b a P ilo to _ P H P c e s a r g o m e z p e r illa $ |
Luego de crear la rama, se debe m over sobre ella con el comando "checkout <rama>”
Se debe revisar las historias de usuario asignadas al desarrollador, para ello en DevOps en la sección
"Boards/Plans” encontrará las historias asignadas. Ver figura 6 y 7.
Una vez este sobre la rama "develop”, según la historia de usuario asociado en DevOps, se debe crear una
rama especifica, Ejemplo: Para el caso anterior se tom ará la historia de usuario #31366 Verificar los reportes.
Ver figura 8.
El desarrollador una vez termine su labor debe incluir su trabajo en la rama <puntual>, ya sea con nuevos
archivos o actualizando los existentes. Se recom ienda que en los com entarios hacer referencia a que
requerim iento funcional puntuales. Ver figura 9.
Una vez term inado de desarrollar sobre la rama <puntual>, debe realizar la integración con la función "merge”
con la rama "develop” . Ver figura 10.
Luego de tener el desarrollo debe sincronizar el trabajo que tiene en la terminal local a repositorio en DevOps.
Ver figura 11 y 12.
6. TFS VC
Configurar la ruta del proyecto que se encuentra Azure DevOps Server para trabajar en ambiente local. Debe
seleccionar el proyecto y relacionar la carpeta local como se ve en la figura 13.
Para incluir el proyecto debe dar clic derecho, en la opción "Agregar elem entos a carpeta” y seleccionar el
código que quiere agregar al control de código fuente. Ver en la figura 14 y 15.
G G S I.P rue b a
N o m b re C a m b io p e n d ie ... U su a rio Ú ltim a Ú ltim a inse rció ...
LJ h
É jo b j Sí 12/03/2020 03
Pages Sí 12/03/2020 03
d w w w ro o t Sí 12/08/2020 03
c* P ro g ra m .c s Sí 12/08/2020 08
c* S ta rtu p .c s Sí 12/08/2020 08
|c*] W e b A p p .c s p ro j Sí 12/08/2020 08
■g N u e v a carpeta
+L l A g re g a r e le m e n to s a carpeta...
R a m a y c o m b in a c ió n
B u s ca r
A vanzadas
El desarrollador una vez termine su labor debe incluir su trabajo en el repositorio, ya sea con nuevos archivos
o actualizando los existentes. Se recom ienda que en los com entarios hacer referencia a que requerim iento
funcional puntuales. Ver figura 16.
a Comentario
<< O E:\vscode\WeW
B l readme.txt [c
Para ver la trazabilidad del código fuente se puede dirigir desde Azure DevOps Server en la opción "Repos”,
luego en "Files” , encontrando el repositorio TFSVC con su respectivo historial. Ver figura 17.
Overvtew
K $/GGSI.WebApp — Contents History + New f Upload flle(s) ¿ Download a Zlp
E3 WebApp.csproj 8/12/2020 7563 sincronizamos el proyecto 12 de agosto Cesar Augusto Gómez Perilla
Para iniciar la codificación se debe crear la rama con el nombre "develop” , el cual se hará todas las integraciones
de las historias de usuario del proyecto, para los desarrolladores puedan trabajar sin ningún problem a y
desplegar los avances. Ver figura 18.
|> GGSl.Pruebasf ’* u_ ■■
Abrir en el Explorador de archivos
© Ver historial
a Comparar...
Nueva carpeta
Agregar elementos a carpeta...
N o m b r e d e ra m a d e o rig e n :
C re a r u n a ra m a d e sd e la v e rs ió n :
De: Ú ltim a v e rs ió n
N o m b r e d e ra m a d e d e s tin o :
D e s c rip c ió n :
C rear u n a ra m a
La generación de las ramas puntuales está orientado a las historias de usuario de DevOps. Una vez este la
rama de "develop” , para el caso del numeral 4.5 se tom ará la historia de usuario #31366 Verificar reportes. Ver
figura 20.
‘n d iP ru e b a P ilo to N e t Sí 1 5 /0 9 /2 0 2 0 09:...
P ru e b a P ilo to N e t-d e v e lo p Sí 1 5 /0 9 /2 0 2 0 09:...
^ P r u e b a P ¡lo to N e t-d e v e lo p -3 1 366 Sí 1 5 /0 9 /2 0 2 0 1 0 :...
Cuando se finaliza el desarrollo con su respectivo pruebas en la rama <puntual>, se debe sincronizar el
desarrollo con la rama "develop” . Ver figura 21 y 22.