Archivo de la categoría: DI

Desarrollo de interfaces

Subversion vs Git ¿Cual elegir?

git-vs-subversion

Aquí enumero una serie de razones que me hacen decantarme por Git sin dudarlo en este aspecto:

  • Git es mucho más rápido que Subversion
  • Subversion le permite ver sólo un subárbol de un repositorio; Git necesita clonar el repositorio completo (incluyendo el historial) y crear una copia de trabajo que refleje al menos un subconjunto de los elementos que están bajo control de versiones.
  • Los repositorios Git son mucho más pequeños que Subversiones. SVN requiere 30 veces más el espacio en disco para almacenar el mismo historial.
  • Git fue diseñado para ser totalmente distribuida desde el principio, lo que permite que cada desarrollador tenga pleno control local.
  • Las ramas (branches) Git son más simples y menos pesados que Subversion
  • Las ramas (branches) Git llevan toda su historia completa
  • La fusión (merge) en Git no obliga a recordar que la revisión que se fusionaron a partir de (este beneficio se evita con el lanzamiento de Subversion 1.5)
  • Git proporciona una mejor auditoría de eventos de ramificación (branch) y fusión (merge)
  • Los formatos de archivo de los repositorios de Git son simples, por lo que la reparación es fácil y la corrupción es rara.
  • La copia de seguridad de los repositorios centrales de Subversion es potencialmente más simple
  • El clonado de repositorios Git actua como repositorio de copias de seguridad completas
  • Interfaz de usuario de Subversion es más maduro que Git. Actualmente Subversion tiene una gama más amplia de GUI’s que Git. Por ejemplo, hay plugins disponibles de SVN para los IDEs más populares, pero si utilizas Netbeans o Eclipse vas a tener GUI’s para ambos sistemas.
  • Navegando a través de las versiones es más simple en Subversion, ya que utiliza números de secuencia de revisión (1,2,3, ..); Git utiliza impredecibles códigos hash SHA-1.
  • Navegando hacia atrás en Git es muy fácil usando la sitaxis “^”, pero no hay manera fácil de navegar hacia adelante.
  • Dado que Subversion tiene un repositorio central único, es posible especificar leer y escribir los controles de acceso en un solo lugar y hacer que se respete efectivamente en la totalidad del proyecto.
  • Con Subversion se puede extraer un subdirectorio de un repositorio. Esto no es posible conGit. Por lo que para un proyecto grande, esto significa tener siempre que descargar el repositorio completo.
  • SVN tiene la ventaja de que es mucho más fácil de aprender mientras que Git es más difícil de aprender porque tiene más conceptos y órdenes.

En conclusión la decisión de cual seleccionar depende como siempre de cada uno, yo, personalmente prefiero trabajar con Git por la característica de la velocidad y almacenamiento, dos factores indispensables en el versionado de código.

Controlador de versiones: Subversion

subversion-background

Subversion en consola

El controlador de versiones Subverion es muy similar a Git(o mas bien Git es similar a Subversion, que es anterior), aunque si que se diferencia en algunas pequeñas cosas, como por ejemplo en que para solicitar archivo del repositorio se solicita con Checkout en vez de con pull, estos son algunos de sus comandos mas necesarios:

-svn checkout: Obtenienes una copia de trabajo local para tu proyecto.

– svn add: Agregando archivos y/o directorios desde tu copia de trabajo hacia el repositorio.

svn blame: Ves el contenido de archivos específicos con la información de revisión y autor.

svn cat: Ver el contenido de un archivo específico.

svn copy: Copia un archivo o directorio en la copia de trabajo o en el repositorio.

svn diff: Ves la diferencia entre archivos.

svn commit: Subes la copia local al repositorio remoto.

svn import: Importa un archivo o directorio sin versionar al repositorio.

svn info: Mostrar información acerca de paths en tu copia de trabajo.

svn merge: Fusiona cambios.

svn log: Muestra los mensajes log de los commit.

 

Para poder usar subversión primero se ha de crear un repositorio en alguna página que así lo permita (por ejemplo SourceForge), una vez creado en la página web , conectamos NetBeans al repositorio y se van guardando los avances que hagas creando commits y enviándolos, para ver si existe conflico con la copia que se encuentre en el repositorio en ese momento. Cuando se comience a trabajar, se descarga la copia que se encuentre en remoto con el commando Checkout. Si utilzas NetBeans tienes Asistente para facilitar el uso de Subversion y para controlar los conflictos y resolverlos.

Controlador de versiones: Git

git4

Git en terminal.

Git es un software de control de versiones utilizado para trabajar en equipo. Su principal función es el control de las datos del proyecto.
Con git podemos trabajar en dos o más ordenadores sobre un mismo proyecto, teniendo un eficaz control sobre cada modificación que se va haciendo en este.

Para usar Git en terminal, disponemos de los siguientes comandos:

Init: El comando git init crea un repositorio Git nuevo. Se puede usar para convertir un proyecto existente y no versionado a una reposición Git o a un repositorio vacío. La mayoría de los otros comandos Git no están disponibles fuera de un repositorio inicializado, así que este es normalmente el primer comando que ejecutarás en un proyecto nuevo.

ADD: El comando git add añade un cambio en el directorio de trabajo al área de preparación. Le dice a Git que quieres incluir actualizaciones en un archivo en particular en el siguiente commit. Sin embargo, git add no afecta al repositorio de forma importante los cambios no se guardan hasta que se ejecuta git commit.

Commit: El comando git commit confirma la instantánea preparada a la historia del proyecto. Las instantáneas confirmadas pueden considerarse versiones «seguras» de un proyecto—Git nunca las modificará a menos que lo pidas explicitamente. Junto con git add, este es uno de los comandos más importantes de Git.

Clone: El comando git clone clona un repositorio Git ya existente. Es parecido a svn checkout, excepto la «copia de trabajo» es un repositorio Git completo; tiene su propio historia, administra sus propios archivos y es un entorno completamente aislado del repositorio original.

Config: El comando git config permite configurar la instalación Git (o un repositorio individual) desde la línea de comandos. Este comando puede definir todo: desde la información de usuario a las preferencias de comportamiento de un repositorio. A continuación están listadas algunas de las opciones de configuración más comunes.

Status: El comando git status muestra el estado del directorio de trabajo y del área de preparación. Permite ver qué cambios se han preparado, cuáles no, y qué archivos no llevan seguimiento de Git. La salida del comando no muestra ninguna información sobre la historia del proyecto confirmada.

Push: Sube nuestro local al servidor remoto.

Para empezar:

1º- El primer paso es crear un repositorio en remoto, con git, para esto usaremos la página https://github.com/. Una vez te registras, puedes hacerte tu propio repositorio.

2º – En segundo lugar, una vez tenemos creado nuestro repositorio, clonamos este a local con el botón de clonar:

3º- Ya podemos empezar a tocar nuestro código, cuando queramos, subir nuestros cambios tenemos que hacerlo en tres pasos:

-Git Add
-Git Commit
-Git Push

Con esto, tendremos nuestro repositorio ya modificado en remoto, en caso de que otra persona hubiera modificado en archivo en remoto antes que nosotros, al hacer el push nos dará un error y podremos ver los cambios efectuados, con esto, podremos “Fusionar” nuestro trabajo con el suyo y entonces, una vez terminado, podremos hacer el push.

Usar Git en Netbeans.

Netbeans nos facilita la opción de utilizar Git directamente integrado sin necesidad de estar tocando la consola, la forma de utilizar esto es la siguiente:

Para empezar:

1º- Haciendo click en Team/Git nos saldrá un asistente el cual nos pedirá nuestro usuario y contraseña en Github, además del nombre del repositorio, después de rellenar todos los campos, haciendo click en siguiente nuestro Netbeans estará sincronizado con el repositorio remoto.

2º. La forma de hacer Add y Commit en Netbeans es la siguiente:

En caso de que una persona ya haya modificado el remoto antes, nos saldrá un error como este:

Gracias a Netbeans, tenemos un asistente fácilmente entendible, el cual nos ayuda a realizar las modificaciones de una forma mucho más visual. Podremos acceder a esto desde aquí:

Una vez hayamos modificado y guardado nuestros cambios, podremos hacer un push, poniendo un comentario apropiado sobre que cosas han cambiado.