-
Notifications
You must be signed in to change notification settings - Fork 4
Como colaborar con el repositorio
El Flujo de Trabajo definido para interactuar con el repositorio de Bachaco-ve es el 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 .
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.
##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.
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.
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.
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.
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].
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.
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)