Sei sulla pagina 1di 7

Documentar Diseño

Desarrollo Ágil de Sistemas

Facilitadores:

Jehú Hernández

Pedro Fernández

Presentan:

Alfredo de la Rosa

Victoria Galarza

Miguel Angel Piccini

Neftali Watkinson

Ensenada BC, a lunes 4 de octubre de 2010.


Comparación entre Subversion, Team Foundation
Server y GIT.
Repository model

TFS

Client- Server

SVN

Client-Server

GIT

Distributed

Check outs

TFS

Permite hacer múltiple Check Outs, tiene manejador de conflictos, guardar cambios
sin subirlos al source control y hacerlos accesibles a otros, graba todos los cambios
realizados, fusión y duplicados además de designación de diferentes niveles de
seguridad en el árbol de archivos. Además su integración con Visual Studio hace
checkout automático al detectar que se están realizando modificaciones al código.

SVN

Tiene la opción de realizar un hijack, lo cual hace accesible el código al usuario pero
sin tenerlo bloqueado, en caso de hacer checkout lo deja bloqueado a otros
usuarios para su acceso, por lo tanto no permite la customización de bloqueos.

GIT

Debido a la estructura distribuida de GIT, más que un checkout se le denomina


clone. No existen bloqueos en el caso de GIT ya que cada desarrollador cuenta con
una copia del proyecto y puede realizar cambios aunque otro los esté haciendo por
su lado.

Locks

TFS
Permite designación de diferentes niveles de seguridad en el árbol de archivos y
determinar los tipos de bloqueos que se van a utilizar, se puede impedir a otros
usuarios obtener el código mediante checkout, se les puede impedir hacer check in,
se le pueden impedir los dos, o permitirle el uso completo del código.

SVN

Permite bloquear partes del código para ser modificado mediante el comando svn
lock/unlock.

GIT

No existen bloqueos en el caso de GIT ya que cada desarrollador cuenta con una
copia del proyecto y puede realizar cambios aunque otro los esté haciendo por su
lado.

Rollback

TFS:

TFS permite deshacer los cambios realizados y volver al código que se tenía al
punto de hacer el checkout mediante la opción “Undo Changes”. No es necesario
pedir al servidor la versión anterior para llegar a esto.

SVN

No cuenta con comando de RollBack, si se quieren deshacer los cambios se debe de


obtener la versión deseada.

GIT

Permite realizar un Rollback mediante el comando reset --hard HEAD^ lo cual


permite regresar a un estado anterior del proyecto sin necesariamente tener
que sustituir todo el código.

Rename files

SVN

Aunque se puede cambiar el nombre de un archivo manteniendo el historial


de cambios, SVN no detecta por sí mismo que se ha modificado el nombre,
por lo que es necesario indicárselo manualmente. Para cambiar el nombre de
usa la instrucción svn rename OldFle.cs NewFile.cs Se recomienda hacer
un svn commit antes de comenzar a hacer cambios en el archivo
renombrado, para evitar problemas de versiones y conflictos.
TFS

Se puede renombrar un archivo con el siguiente comando:

tf rename /login:user,password old.cs new.cs

Se mantiene su historial de cambios.

GIT

Al administrar el contenido de los archivos, Git puede detectar si un archivo


ha cambiado de nombre y aun así mantener su historial de cambios sin
necesidad de que el usuario deba indicarle que el archivo ha cambiado de
nombre.

Permisos

En general los permisos básicos que se otorgan son Read Only o Read &
Write.

TFS

Los permisos pueden estar definidos como Deny o Allow. Los

• Se crean cuatro grupos para el proyecto, que definen los permisos con
los que cuentan:
o Project Administrator: Manage

o Contributor: Read and Write access.

o Reader: Read access

o Build Services: Build the project

También hay diversos niveles de permisos

Server-Level Permissions:

Project-Level Permissions

Work Item Tracking Area-Level Permissions

Source Control Permission

SVN
Se pueden asignar permisos por proyecto, (pueden ser Read Only o Commit
que incluye Read & Write).

También se pueden asignar permisos para un path determinado para un user


group.

GIT

En si no administra los permisos, ya que busca centrarse más en el manejo


del contenido, por lo que delega esta actividad a otras herramientas como
SSH, filesystems permissions.

Para control de acceso simple, con git -daemon se puede da un permiso


automático de sólo lectura para todos los usuarios y son SSH se dan
permisos de escritura. Si se desean dar permisos más avanzados se usan los
permisos del filesystem.

Portabilidad
Esta sección hace referencia los sistemas operativos que el sistema de control de
versiones soporta.

Git Subversion (SVN) Team Foundation Server


(TFS)
• POSIX • UNIXes • Windows
• Windows (limitado) • Windows
• Mac OS X • Mac OS X
Git:
Fue diseñado para funcionar en sistemas operativos portables basados en Unix,
más que nada para sistemas Linux.

En Windows se tienen dos maneras principales de trabajar que son:


1. Usando un puerto nativo de Windows, de nombre msysGit, el cual tiene un
desempeño más lento que en Linux y no todos los comandos están
disponibles desde la GUI.
2. Utilizando Cygwin, el cual es un emulador de consola de Linux, el cual es aun
más lento que la opción anterior.
Hay que hacer notar que muchos usuarios han intentado instalar Git en Windows sin
éxito.

En Mac OS X la instalación es complicada y algunos usuarios han reportado tratar


de instalar el sistema sin éxito.
SVN:
Es una opción multiplataforma ya que trabaja muy bien en sistemas operativos
basados en UNIX, en Windows y en Mac OS X

TFS:
El cliente y el servidor trabajan estrictamente en sistemas Windows, aunque una
compañía externa desarrolla clientes para ser incorporados en eclipse por lo que se
puede utilizar en Linux y Mac también.

Lenguaje

Esta sección trata de los lenguajes de programación bajo los que trabaja el sistema
de control de versiones.

GIT SVN TFS


• C • C • C++
• Shell scripts • C#
• Perl

Licencias

• Team Foundation Server: Tiene Licencia Comercial ya que es


desarrollado por una empresa que pretende ganar dinero por su uso.
Microsoft.
• SUBVERSION Tiene licencia Apache/BSD-style license
La licencia BSD, si bien es Software Libre y cumple
las tres libertades, no es copyleft como la GPL, puesto que es posible
cambiar la licencia. (open source)
Free Software (open source) nos dice:

Es válido vender software BSD y GPL siempre que respete esas 3 libertades,
de esta forma se tiende a que no se cobre por el programa en sí, sino por los
servicios que eso implica: instalación y mantenimiento fundamentalmente.
• La primera libertad es la de usar el programa.
• La segunda la de poder modificar el programa.
• La tercera la de distribuir el programa modificado o no.

Software con copyleft: software libre cuyos términos de distribución no


permiten a los redistribuidores agregar ninguna restricción adicional cuando
lo redistribuyen o modifican, o sea, la versión modificada debe ser también
libre.

• GIT Tiene licencia del GNU GPL (GNU General Public License)
La licencia GPL obliga a incluir el código fuente en
su distribución, siendo imposible cambiar la licencia al programa, al
distribuirlo tal cual o modificado. (open source)
Documentación
• Team Foundation Server Good. Tiene una comprensible
documentación en MSDN Library. Cuanta con tutoriales Step-by-Step
y videos online.

• Subversion. Se característica por tener recursos y libros online


escritos en DocBook/XML and con la facilidad de convertirse en
diferentes formatos. Cuenta con línea de comando cliente, también
probé una buena ayuda online del sistema que puede usarse como
una referencia.

• Git . Cuanta con ayuda online de cada comando detalladamente, son


manuales extensos y tienden a ser confusos, hay sin embargo hay
muchos tutoriales en blogs, post y algunos libros y algunos libros son
online.

Potrebbero piacerti anche