martes, enero 16, 2007

Algunos Link sobre SubVersion


VISUAL SOURCE SAFE????

En este documento, quiero mostrarles la un administrador de código fuente que es mejor que visual source safe...

Cuando trabajamos con VSS pasamos por problemas como: Se me perdio lo que hice, hice check in y dañe lo que tenia en el servidor, necesito hacer unos cambios en una clase pero el otro compañero la tiene bloqueda, entonces me toda decirle "soltala!!!".. etc..

este versionador que quiero presentar a parte de tener su propia interface desde el explorador de windows, ser gratis y permitirme trabajar de forma remota.... es mucho mejor... pues sus ventajas con VSS son considerables... una que se me viene en el momento a la cabeza es la forma de hacer un "merge".. pues varios usuarios pueden modificar la misma clase y luego se hace una unión de lo que cada uno hizo...

Me refiero al administrador de código fuente SubVersion... CVS es una version mas antigua...

Primero debemos pensar en el repositorio

Un repositorio es una aplicación que ayuda en este caso a los programadores a centralizar y coordinar sus archivos, puede servir para almacenar no solo código fuente, también se puede llevar el control a todo tipo de archivos (imágenes, documentos de oficina, ejecutables, etc) ..

Del manual oficial de subversion tenemos:" Lo que hace especial al repositorio de Subversion es que recuerda cada cambio jamás escrito en el: cada cambio a cada archivo, e inclusive cambios al árbol de directorios mismo, tales como la adición, borrado y reubicación de archivos y directorios….… permite recuperar versiones antiguas de sus datos, o examinar la historia de cómo han cambiado (sus datos). En este aspecto, mucha gente piensa en los sistemas de versiones como en un tipo de "máquina del tiempo".

Veamos un ejemplo practico..

Llego la acción, configurando el servidor he iniciando el repositorio
Subversion funciona en cualquier sistema operativo donde corra el servidor web Apache: BSD, Linux, Mac OS X, Netware, Windows, etc.

Entonces tenemos este escenario,:
Pepito & Maria -> Desarrolladores principales
Administradores Amigos de Pepito y Maria -> Otros Desarrolladores
Gonzalito -> Usuario

Pepito tiene conexión a Internet permanente en un servidor con Debian Sarge, con apache2 recién instalado, para instalar el servidor subversion sencillamente hay que ejecutar el comando:

#apt-get install subversion subversion-tools libapache2-svn

Pepito dice: "Joder, apt-get es una maravilla, lo instalo todo de una, y resolvió dependencias automáticamente!!!", para usuarios de otras distribuciones o sistemas operativos que no tengan la suerte de Pepito, pueden buscar como configurarlo en su sistema operativo, o si lo prefieren pueden bajarse el código fuente y compilarlo.

Una vez instalado, vamos a crear una carpeta para almacenar nuestro repositorio:

# mkdir -p /var/local/repos

Ahora creamos la base de datos del repositorio (mas información abajo):

# svnadmin create /var/local/repos

Ahora permitimos al servidor web escribir en el repositorio

# chown -R www-data:www-data /var/local/repos

nota: "www-data "es generalmente el usuario en que corre el servidor web en Debian, en otras distribuciones puede variar, por ejemplo en fedora el usuario es "apache".

Ahora vamos a configurar Apache para permitir el acceso al repositorio via http (web). en el archivo /etc/apache2/httpd.conf añadimos:


DAV svn
SVNPath /var/local/repos
AuthType Basic
AuthName "Repositorio Subversion en labs.tecsua.com"
AuthUserFile /etc/subversion/passwd
Require valid-user


Ahora creamos el archivo de autenticación, en este archivo se guardaran todos los usuarios:

#htpasswd2 -c /etc/subversion/passwd pepito

Nótese que el comando "htpasswd2" tiene la bandera "-c", por lo que es la primera vez que se ejecuta el comando la bandera "-c" crea el archivo en caso de que no exista, pero si ya existe lo sobreescribe, para añadir nuevos usuarios, ya no tenemos que especificar la bandera "-c"… entonces el comando para añadir el usuario Maria es:

#htpasswd2 /etc/subversion/passwd maria

Por ultimo, reinicie Apache2 con el comando (para Debian):

#/etc/init.d/apache2 restart

Listo!!!, ahora Pepito y Maria podrán acceder al nuevo repositorio de subversionhttp:///repos por ejemplo http://192.168.0.1/repos Vía web podremos ver la Revision 0: /, es un buen momento para festejar e ir por una cerveza para continuar el trabajo

Articulo tomado de
http://josecely.tecsua.com/?p=12
© José Antonio Cely Saidiza - 2005 jose.cely@tecsua.com

¿Que metodología de desarrollo elegir?

En este tema de metodologías creo que hemos pasado por varios conceptos.
Primero comence trabajando la metodologia MSF en una empresa para la que trabaje, luego empece a conocer la metodologia RUP.. ahora, a veces vamos a realizar desarrollos como personas independientes y no sabemos que metodologia utilizar de forma casera...
"Elegir una metodología no es una cuestión simple, se prodría escribir un libro sobre este tema. En mi opinión es algo que depende principalmente de dos factores, el tipo de proyectos y la cultura que exista en la empresa.
Otro factor que puede tener cierto peso, pero que no tiene por que ser determinante del todo, es que esa metodología este soportada por determinadas herramientas, por ejemplo Team System o que existan herramientas de nuestro gusto que nos faciliten la adopción de la metodología elegida. Aunque no es un factor determinante, contar con una herramienta adecuada es algo que puede hacer mucho más llevadera la implantación de una metodología.
El primer paso es conocer a fondo las metodologías que evaluamos o buscar a alguien que las conozca, y en una situación ideal haber trabajado con varias de ellas. No hay metodología que funcione de manera universal, de hecho cada vez más las metodologías se conciben como 'marcos' metodológicos que es necesario ajustar para cada organización y tipo de proyecto. Realizar este ajuste es algo que necesita de una experiencia y un conocimiento previo. El problema con la implantación de una metodología es que no se suele tener una segunda oportunidad.
A la hora de seleccionar una metodología la primera decisión que se plantea es: ¿Una metodología ágil o una metodología guiada por plan? En mi opinión la gran mayoria de proyectos se pueden beneficiar mucho del uso de una metodología ágil, pero indudablemente existen proyectos y entornos en los que es condición, generalmente impuesta por el cliente o la dirección de la empresa, que el proyecto se desarrolle con 'más control'.
Para plantearte el uso de una metodología ágil tenemos que ser capaces de asumir completamente el Manifiesto Ágil y ser capaces de hacer que sea el paradigma que guie la gestión de nuestro proyecto, y desde luego es sumamente importante que logremos un sponsor. Tener un sponsor es vital en todo proyecto de implantación de una metodología, pero sobretodo es vital para implantar una metodología ágil, pues exige que se produzcan profundos cambios en la cultura tradicional relativa a la gestión de proyectos.

Poniendo de menos a más ágil, de más 'revolucionaria' a menos, las metodologías más populares, nos queda la siguiente lista:

  • CMMI con una implanción tradicional
  • Rational Unified Process
  • MSF for CMMI Process Improvement
  • MSF Agile
  • Scrum
  • eXtreme Programming

Sin conocer a fondo el tipo de proyecto, las herramientas con las que se puede contar (RUP y MSF se implanta bien si se tienen las herramientas de Rational, carísimas, o Team System respectivamente) y cual es la cultura de la empresa en lo que a gestión de proyectos se refiere y en que grado se busca impactar en esa cultura, a veces es precisamente lo que se busca o se necesita, aplicaria la maxima de que 'en el punto medio esta la virtud' y me iria a MSF. "

Autor: Geeks

En resumidas cuentas, sugiero que primero conozcan bien la metodologia, es decir el concepto, así como para que luego lo apliquen correctamente.
Si se aplica la metodología RUP, conozcan bien el concepto de UML que luego no importa la herramienta que utilicen las cosas saldran bien...