Skip to content

Como colaborar con el repositorio

Javier León edited this page Apr 22, 2015 · 1 revision

COLABORAR EN EL REPOSITORIO PRINCIPAL DE BACHACO-VE

El Flujo de Trabajo definido para interactuar con el repositorio de Bachaco-ve es el Flujo de trabajo centralizado.

Flujo de trabajo centralizado

En los sistemas centralizados, tenemos una única forma de trabajar. Un repositorio o punto central guarda el código fuente; y todo el mundo sincroniza su trabajo con él. Unos cuantos desarrolladores son nodos de trabajo --consumidores de dicho repositorio-- y se sincronizan con dicho punto central.

Flujo Centralizado Flujo Centralizado.

Esto significa que, si dos desarrolladores clonan desde el punto central, y ambos hacen cambios; tan solo el primero de ellos en enviar sus cambios de vuelta lo podrá hacer limpiamente. El segundo desarrollador deberá fusionar previamente su trabajo con el del primero, antes de enviarlo, para evitar el sobreescribir los cambios del primero. Este concepto es también válido en Git, tanto como en Subversion (o cualquier otro CVCS), y puede ser perfectamente utilizado en Git.

Ahora si Como Colaborar al Proyecto!

##Trabajando con github El esquema de trabajo que nos propone github puede parecer confuso al principio, pero en realidad es bastante simple, tan sólo hay que tener presente que uno está trabajando con tres repositorios distintos y entender el rol que cada uno cumple.

Repositorio main: es el repositorio en github de la aplicación con la cual vamos a colaborar. En nuestro caso el repositorio está en https://github.com/Bachaco-ve/l10n_ve. No podremos hacer ningún cambio directamente sobre este repositorio, ya que no tendremos permisos de escritura sobre el mismo. Lo que haremos es crear nuestra propia copia (fork) del mismo.

Repositorio origin: es nuestra copia del repositorio que forkeamos alojada en github. A este repositorio enviaremos los cambios que efectuaremos en nuestro repositorio local.

Repositorio local: es el repositorio local que tendremos en nuestra propia estación de trabajo. Comunmente realizaremos los cambios trabajando en nuestro repositorio local. Cuando hayamos confirmado (commit) nuestros cambios localmente, los enviaremos (push) a nuestro repositorio origin alojado en github. Luego haremos un pedido (pull request) al repositorio main solicitándole que integre los cambios del repositorio origin.

Este es el esquema general de trabajo con github, que nos servirá no sólo para colaborar con Bachaco-ve, sino con cualquier proyecto libre alojado en github, incluido el propio Proyecto de Odoo.

Crear una cuenta en github

Lo primero que tendremos que hacer es navegar a https://github.com/signup/free y crear una cuenta gratuita en github.

Luego deberás instalar git en tu equipo y configurar tu cuenta siguiendo las instrucciones para Linux o las instrucciones para Windows, según el sistema operativo que estés utilizando.

Hacer un fork del repositorio upstream

Navega al sitio de github e ingresa con tu usuario y password. Luego tendrás que navegar a https://github.com/Bachaco-ve/l10n_ve y hacer click en “fork”. Con esto ya habrás creado tu repositorio origin.

Clonar nuestro repositorio origin en un repositorio local

En nuestra estación de trabajo ejecutamos las siguientes instrucciones (debes ajustarlas según tu nombre de usuario, remplazando [tu_cuenta_de_github] por tu nombre):

cd ~
mkdir bachaco-ve
cd bachaco-ve
git clone [email protected]:[tu_cuenta_de_github]/l10n_ve.git

De esta manera nos quedará la copia local instalada en ~/bachaco-ve/l10n_ve.

Coordinar nuestro trabajo con el resto de los colaboradores

A fin de evitar que más de un colaborador esté trabajando en el mismo archivo es conveniente utilizar el sistema de incidentes que nos provee github. Simplemente debemos dirigirnos al sitio del repositorio main https://github.com/Bachaco-ve/l10n_ve/issues/ y crear una nueva incidencia, poniendo el nombre del archivo o los archivos que vamos a modificar y entre corchetes nuestro nombre de usuario en github.

Por ejemplo, si quisiéramos modificar el archivo openerp.py, primero nos fijaríamos en las incidencias para asegurarnos que nadie esté trabajando en ella, y luego cargaremos uno nuevo con el siguiente texto openerp.py [jelitox].

Guardar los cambios y enviar nuestras modificaciones

Una vez que hemos terminado de modificar algún archivo, vamos a querer enviarlo a los administradores de Bachaco-ve para que sean incluidos en producción. Para ello tendremos que confirmar los cambios en nuestro repositorio local, actualizar nuestro repositorio origin en github, y hacer un pedido para que estos cambios sean incluido en el repostiorio main.

Mediante el comando git status podemos ver los archivos que hemos modificado localmente. Con el comando git add, le indicamos a git cuáles son los archivos que vamos a querer confirmar (commit). Con git commit confirmamos los cambios en nuestro repositorio local y finalmente, con git push origin master subimos los cambios locales a nuestro repositorio origin. Situados en el directorio del repositorio, en nuestro caso ~/bachaco-ve/l10n_ve, estos serían los comandos que deberemos ejecutar:

git status
git add .
git commit -m "Agregue información del Modulo l10n_ve"
git push origin master`

En caso de haber cargado una incidencia para ese archivo, es súmamente útil incluir el texto fixes seguido del signo # y el número de la incidencia en el texto que utilizamos al hacer el commit, de la siguiente manera git commit -m "fixes #34 - Agregue información del Modulo l10n_ve". De esta manera github relacionará nuestros cambios con el incidente y lo cerrará automáticamente.

Luego navegamos a nuestro repositorio origin, en este caso https://github.com/[Nombre_de_Usuario]/l10n_ve, en donde ya deberías poder ver los cambios que acabas de realizar. Para solicitar al repositorio main que integre nuestros cambios simplemente hacemos click en el botón pull request. Y ahora tan sólo resta esperar que los administradores del repositorio main (en este caso nosotros) revisen los cambios y los integren en los modulos.

Manteniendo nuestros repositorios actualizados

A medida que sigamos trabajando, debemos mantener actualizados nuestros repositorios (local y origin) con los cambios del repositorio main. Para eso configuramos el repositorio main como un repositorio remoto (remote) vinculado a nuestro repositorio local. Situados en el directorio del repositorio, en nuestro ejemplo ~/bachaco-ve/l10n_ve, deberemos ejecutar:

git remote add bachaco-ve [email protected]:Bachaco-ve/l10n_ve.git Cuando necesitemos traer las actualizaciones de main, deberemos ejecutar:

git fetch bachaco-ve
git merge bachacho-ve/master

Realizado por: jelitox Basado en [Manual de Colaboración Playdoces] (http://playdoces.appspot.com/documentation/1.2.4/github)