FAQ Recuperar, actualizar GIT fuentes del proyecto: Difference between revisions

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
No edit summary
m (Updating interlang links (links to translated versions of this page in other languages) triggered by origin English page "FAQ_Get,update_GIT_project_sources" update.)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!-- BEGIN interlang links -->
<!-- Do NOT edit this section
    Links below are automatically managed by PolyglotBot
    You can edit links on the English source page : FAQ_Get,update_GIT_project_sources -->
[[en:FAQ_Get,update_GIT_project_sources]]
[[fr:FAQ_Récupérer,_mettre_à_jour_les_sources_GIT_du_projet]]
[[de:FAQ_Get,_update_GIT_Projekt_Quellen]]
[[zh:常见问题-获取与更新项目的GIT源代码]]
<!-- END interlang links -->
[[Category:FAQ ES]]
[[Category:FAQ ES]]
{{TemplateDocDevEs}}
{{TemplateDocDevEs}}


{{ToTranslate}}
Esta es información sobre cómo puede obtener las fuentes del proyecto Dolibarr.
This is informations on how you can get sources of Dolibarr project.


=Get last version of sources by download=
= Obtener la última versión de los fuentes por descarga =
This method allows you to get sources of main development branch (called HEAD): This operation consist to get last version of Dolibarr files that are packaged each night into a tgz file.
Este método le permite obtener los fuentes de la rama de desarrollo principal (Llamada HEAD). La operación consiste en recuperar la última versión de los archivos de la aplicación Dolibarr que son compilados cada noche en un archivo. Este archivo se encuentra disponible en el siguiente enlace:
For this, go on page with [http://www.dolibarr.org/downloads/cat_view/64-development-version last source version of the day].


New files overwrite old ones.
{{LinkLastSnapshot}}
The inconvenient of this method is that you must download and uncompress package each time you want to get updates.


=Get last version of sources using a GIT anonymous access=
Los nuevos archivos reemplazarán los antiguos
== Prerequisite ==
 
First you must have a working install of Eclipse. '''EGit''' plugin must also have been installed.
El problema de este método es que hace falta descargar y descomprimir el paquete cada vez que deseemos actualizar.
For this, use the '''Find And Install process''' into Eclipse menu, add the GIT update URL:  
 
= Obtener la última versión de los fuentes usando un acceso anónimo GIT =
== Prerrequisitos ==
Debe tener una instalación funcional de Eclispe, el plugin '''EGit''' también debe estar instalado.
Para instalarlo, use '''Help''' desde el menú Eclipse, seguidamente haga click en '''Install new software''' y click en '''Available software site'''. En la lista de direcciones que aparece, busque el enlace :
  http://download.eclipse.org/egit/updates
  http://download.eclipse.org/egit/updates
Then choose to install '''EGit'''.
Seguidamente escoja instalar '''EGit'''.


To get sources with goal to edit them, you need a GitHub write access to the GIT remote repository, and a GIT client (GIT command line tool with Linux, or the GIT client in Eclipse). See next chapter for this.
== Proceso de Clonado ==
Para obtener los fuentes con el objetivo de editarlos, necesita un GitHub con acceso de escritura al repositorio Git remoto y un cliente GIT (herramienta en línea de comandos en linux o el cliente GIT en Eclipse). Vea el siguiente capítulo para ello..


First, enter value of the repository with reference sources into your GIT client tool.
En primer lugar, introducir el valor del repositorio con los fuentes de referencia en la herramienta de cliente de GIT.


* With Eclipse, choose "Clone GIT repository". Enter GIT URL of project to get.
* Con Eclipse, escoja "Clone GIT repository". Introduzca la URL GIT del proyecto a obtener.
GIT Url for Dolibarr official source is:
La Url para los fuentes oficiales de Dolibarr es:
<source lang="ini">
<source lang="ini">
git://github.com/Dolibarr/dolibarr.git
git@github.com:Dolibarr/dolibarr.git
or
git://github.com/Dolibarr/dolibarr.git (read only)
</source>
</source>
Your Eclipse GIT client will ask you to choose the branches you are interesting in. Branches not selected now could be selected later by doing a "Fetch" from the "Remotes" view, but try to choose only the branch you need. This will save you time and problems later.
Su cliente GIT de Eclipse le preguntará en que ramas está interesado. Las ramas no seleccionadas podrán seleccionarse después mediante un "Fetch" desde la vista "Remotes", pero trate de elegir sólo la rama que usted necesita. Esto le ahorrará tiempo y problemas en el futuro.


* With GIT on Command Line Interface:
* Con GIT desde la línea de comandos:
First setup your git client:
Primero configure su cliente GIT:
<source lang="bash">
<source lang="bash">
git config --global user.name "Your Name"
git config --global user.name "Su Nombre"
git config --global user.email "user@domain.com"
git config --global user.email "usuario@dominio.com"
git config --list
git config --list
</source>
</source>
Then clone repository locally:
 
Clone el repositorio localmente:
<source lang="bash">
<source lang="bash">
git clone git://github.com/Dolibarr/dolibarr.git dolibarr
git clone git://github.com/Dolibarr/dolibarr.git dolibarr
</source>
</source>
And, if you are behind a firewall, you can user the alternate URL:
 
Y si usa firewall, puede usar la URL alternativa:
<source lang="bash">
<source lang="bash">
git config --global http.proxy http://proxyuser:proxypass@proxyserver:proxyport
git config --global http.proxy http://proxyuser:proxypass@proxyserver:proxyport
Line 47: Line 63:
</source>
</source>


Once this step is validated, your GIT client will download all files from remote GIT server. This may last several seconds or minutes.
Una vez que este paso se valida, el cliente de GIT se descargará todos los archivos del servidor GIT remoto. Esto puede durar varios segundos o minutos.
Una vez que la descarga haya finalizado, vaya a la vista GIT - Branches - Local. En la mayoría de los casos, la rama que ha escogido ya está disponible.


Once download is finished, go into GIT view - Branches - Local. In most cases, the branch you choosed should be already available.
Si no:
* Con Eclipse, haga click con el botón derecho en"Branches - Remotes - La rama que desea clonar localmente".
Si escoge "Create Branch", duplicará el contenido de la rama para trabajar en forma local.
Si escoge "Checkout", actualizará la vista "Working Directory".


If not:
* Con GIT desde la línea de comandos:
* With Eclipse, right click on "Branches - Remotes - The branch you want to duplicate locally".
If you choose "Create Branch", this will duplicate content of branch to work on it locally.
If you Choose "Checkout", this will update the view "Working Directory".
* With GIT on Command Line Interface;
<source lang="bash">
<source lang="bash">
git checkout develop
git checkout develop
git checkout x.y
git checkout x.y
</source>
</source>
This will create local branch and make checkout automatically.
Esto creará la rama local y realizará un checkout de forma automática.


Si usa Eclipse, una vez que su rama se crea a nivel local, cree un proyecto de PHP a partir del asistente eligiendo "'''Create from existing project'''" y seleccione el directorio de su repositorio GIT local (No use create a PHP project from scratch).
A continuación haga click con el botón derecho del ratón en su workspace y escoja "'''Team - Share'''". Seleccione GIT y haga click en la opción "'''Use or create repository in parent folder of project'''".


If using Eclipse, once your branch is created locally, create a PHP project from assistant by choosing "'''Create from existing project'''" and select directory that is your GIT local repository (Do not choose to create a PHP project from scratch).
Un método alternativo es usar el menú File->Import, Git->Project from Git, Seleccione el repositorio GIT y haga click en Next, Use New project Wizard -> Php project, indique el directorio de su repositorio local GIT.
Then right click on project from your Eclipse workspace and Choose "'''Team - Share'''". Select GIT and click on option "'''Use or create repository in parent folder of project'''".
An alternate method is File->Import, Git->Project from Git, Select the Git repository and Next, Use New project Wizard -> Php project, enter the folder of you GIT local repository.




Then, you can setup Eclipse to avoid it to scan all project files for its build tools (Outline scanner, TODO scanner, syntax scanner...). This will avoid Eclipse to be too slow. For this, right click on project, choose Build Path and setup it like into following screenshot.
Seguidamente, puede configurar Eclipse para evitar analizar todos los archivos del proyecto (Outline scanner, TODO scanner, syntax scanner...). Esto evitará que Eclipse se vuelva lento. Para ello, haga clic derecho en el proyecto, elija Build Path y configure como la siguiente captura de pantalla.


[[File:Eclipse php build path.png|240px]]
[[File:Eclipse php build path.png|240px]]


=Get last version of sources using a full GIT access=
=Obtener la última versión de los fuentes usando un acceso completo GIT=
== Prerequisite ==
== Prerrequisitos ==
First you must have a working install of Eclipse. '''EGit''' plugin must also have been installed.
Debe tener una instalación funcional de Eclipse, el plugin '''EGit''' también debe estar instalado.
For this, use the '''Find And Install process''' into Eclipse menu, add the GIT update URL:  
Para instalarlo, use '''Help''' desde el menú Eclipse, seguidamente haga click en '''Install new software''' y click en '''Available software site'''. En la lista de direcciones que aparece, busque el enlace :
  http://download.eclipse.org/egit/updates
  http://download.eclipse.org/egit/updates
Then choose to install '''EGit'''.
Seguidamente escoja instalar '''EGit'''.
 
You must before create an account on GitHub (https://github.com/) and upload a public RSA or DSA certificate into your account profile.


Then process is same than getting sources with anonymous access.
Debe crear antes una cuenta en GitHub (https://github.com/) y subir un certificado público RSA o DSA en su account profile.
== Proceso de Clonado ==
El proceso es el mismo que el explicado en la obtención de los fuentes con acceso anónimo.


URL to use for GIT clone is same:
la URL a usar para clonar GIT es la misma:
<source lang="ini">
<source lang="ini">
git@github.com:Dolibarr/dolibarr.git
git@github.com:Dolibarr/dolibarr.git
</source>
</source>


Note that a HTTP URL is also available but it's sometimes offline (so use first one instead):
Tenga en cuenta que también se encuentra disponible una dirección URL HTTP, pero a veces se encuentra fuera de línea:
<source lang="ini">
<source lang="ini">
https://yourgitlogin@github.com/Dolibarr/dolibarr.git
https://yourgitlogin@github.com/Dolibarr/dolibarr.git
</source>
</source>


=Update your repository=
=Actualizar su repositorio=
To update your local workspace, right click on Eclipse project and select "Pull".
Para actualizar su workspace local, haga clic con el botón derecho en el proyecto de Eclipse y seleccione "Pull".
 
Si usted realiza algunos cambios en su workspace de Eclipse, el cliente GIT realizará una fusión automática en los archivos que hayn cambiado en la referencia GIT remoto.


If you made some changes into your Eclipse workspace on files that were changed into the GIT remote reference, your GIT client will make a merge automatically.
* Si se producen conflictos, la fusión marcará todos los archivos con conflictos como "conflict" (Ver más adelante para resolver este estado).
* If there is conflicts, the merge will mark all conflict files as "conflict" (See later to solve this state).
* De lo contrario, recibirá todos los archivos de la nueva versión, incluyendo todos sus cambios.
* If not, you will get all new version files including all your changes.


If you already have commited some files into your local repository, your workspace will be marked as "Merged".
Si ya ha comiteado algunos archivos en su repositorio local, su workspace se marcará como "Merged".
All you have to do is make a commit to validate your local repository as including your changes and changes made by others.
Todo lo que hay que hacer es crear un commit para validar su repositorio local, incluyendo sus cambios y los cambios realizador por otros.


= Commit and publish your changes =
= Comitear y publicar sus cambios =
To see all changes you made into your working directory and waiting to be added into Git:
Para ver todos los cambios realizados en su workspace y la espera de ser añadidos en Git:
* With GIT Command Line Interface:
* Con la línea de comandos GIT:
<source lang="bash">
<source lang="bash">
git status
git status
Line 111: Line 128:
</source>
</source>


To add changes made into your local repository into the GIT index, then commit this index :
Para añadir los cambios realizados en el repositorio local en el índice GIT, confirmar este índice:
* With Eclipse: Right click on file or directory to commit. Select file to add/remove/update into commit.
* Con Eclipse: Clic con el botón derecho del ratón en el archivo o directorio a comitear. Seleccione archivo a añadir/eliminar/actualizar en el comit.
* With GIT Command Line Interface:
* Con la línea de comandos GIT:
<source lang="bash">
<source lang="bash">
git commit -a -m "Commit text"
git commit -a -m "Commit text"
</source>
</source>
This will save add and changes into your local branch.
Esto guardará y añadirá todos los cambios en su rama local.


To push them on the GIT repository server,
Para realizar un push al repositorio GIT del servidor,
* With Eclipse: right click on project and choose "'''Team - Push to Upstream'''".
* Con Eclipse: hacer clic con el botón derecho en el proyecto y elegir "'''Team - Push to Upstream'''".
* With GIT Command Line Interface:
* Con la línea de comandos GIT:
<source lang="bash">
<source lang="bash">
git push
git push
</source>
</source>


To cancel a commit:
Para cancelar un comit:
* With GIT Command Line Interface:
* Con la línea de comandos GIT:
<source lang="bash">
<source lang="bash">
git revert IdCommit  or git revert HEAD  (for last commit)
git revert IdCommit  o git revert HEAD  (para el último comit)
</source>
</source>


= Add an external commit into current repository =
= Añadir un commit externo al repositorio =
Some developers may work and do commit into their own Git repository after forking the project. If you are interesting into getting this changes, you can import them with the following steps with Eclipse:
Algunos desarrolladores pueden trabajar y realizar commits en su repositorio GIT después de haber realizado un fork al proyecto.Si está interesado en conseguir esos cambios, puede importarlos realizando los siguientes pasos en Eclipse:
* First, go into GIT setup view and right click on "'''Remotes'''" of your Eclipse Git working space and choose "'''Create a remote...'''"
* Primero, vaya a la vista GIT setup y haga clic con el botón derecho del ratón en"'''Remotes'''" de su Eclipse Git working space y elija "'''Create a remote...'''"
* Type name or remote fork the developer has create (in most cases, it's developer Git login). For example: "'''thedevlogin'''". Choose also "'''Configure Fetch'''".
* Indique nombre o el fork remoto que el desarrollador ha creado (en la mayoría de los casos, es el GIT login del desarrollador). Por ejemplo: "'''thedevlogin'''". Elija también "'''Configure Fetch'''".
* Type URI of Git repository of developer. For example: '''git://github.com/thedevlogin/dolibarr.git'''. Also add a refspec value to declare the branch you want to get. For example: '''refs/heads/master:refs/remotes/thedevlogin/master'''. Click "'''Save and Fetch'''". A new entry will be added into "Remote Tracking" making possible to read/get commits done into this branch.
* Teclee la URI del respositorio GIT del desarrollador. Por ejemplo: '''git://github.com/thedevlogin/dolibarr.git'''. Añada un valor refspec value para declarar la rama que desea obtener. Por ejemplo: '''refs/heads/master:refs/remotes/thedevlogin/master'''. Clic "'''Save and Fetch'''". Se habrá añadido una nueva entrada en "Remote Tracking" haciendo posible la lectura/obtención de los commits realizados en esa rama.


Now, go on command line of your git repository (in most cases on Linux, it's '''/home/yourlogin/git/yourdolibarr''') and type the git cherry-pick command:
Ahora, ir a la línea de comandos de su repositorio GIT (en la mayoría de casos en Linux, es'''/home/sulogin/git/sudolibarr''') y teclee el comando git cherry-pick:
<source lang="bash">
<source lang="bash">
git cherry-pick -x commitid
git cherry-pick -x commitid
</source>
</source>
where commitid is value of commit id you want to get.
donde el commitid es el valor del commit id que desea obtener.


Once this is done, go back to Eclipse and make a refresh on project. You will see modified files appears with decorators (with conflicts if there is).
Una vez hecho esto, vuelva a Eclipse y haga un refresh sobre el proyecto. Verá los archivos modificados aparecen con decoradores (con conflictos si hay).


=Solving a conflict=
=Solucionar un conflicto=
If a file has been marked as "conflict" after a Pull request, open the file to edit it.
Si un archivo se ha marcado como "Conflict" después de un "Pull", ábralo para editarlo.
Find string "<<<<<<<<<<", you will see part of code that is conflict between "<<<<<<<<<" and ">>>>>>>>". Edit manually code lines and remove "<<<<<<<<" and ">>>>>>>".  
Busque el string "<<<<<<<<<<", podrá ver parte del código conflictivo entre "<<<<<<<<<" y ">>>>>>>>". Edite manualmente las líneas de código y elimine "<<<<<<<<" y ">>>>>>>".  


Then, right click on file and select "Add".
Seguidamente haga clic con el botón derecho del ratón en el archivo y seleccione "Add".


If you prefer to forget completely all changes you made into all files (so to restore you workspace with content of remote repository), you can make a hard reset:
Si prefiere perder completamente todos los cambios realizados por usted en todos los archivos (restaurar su workspace con el contenido del repositorio remoto), puede realizar un hard resett:
* With Eclipse, right click on project top line and select "'''Reset'''" then "'''Hard'''" then "'''Reference - HEAD'''".
* Con Eclipse, clic con el botón derecho del ratón sobre el nombre del proyecto y seleccione "'''Reset'''" - "'''Hard'''" - "'''Reference - HEAD'''".
* Using GIT command line tool, you can achieve this with command
* Con la línea de comandos GIT, se puede lograr esto con el comando
<source lang="bash">
<source lang="bash">
git reset --hard HEAD  
git reset --hard HEAD  
</source>
</source>


=Tagging sources=
=Tagging fuentes=
To add a tag to a current version:
Para añadir un tag a la versión actual:
<source lang="bash">
<source lang="bash">
git tag -m "Tag for x.y.z_YYYYMMDD" "x.y.z_YYYYMMDD"
git tag -m "Tag for x.y.z_YYYYMMDD" "x.y.z_YYYYMMDD"
Line 166: Line 183:
</source>
</source>


=Creating a new branch=
=Crear una nueva rama=
This is command used to start a new branch from a clean develop cloned repository:
Este es el comando a usar para crear una nueva rams desde un repositorio clonado de desarrollo:
<source lang="bash">
<source lang="bash">
git branch x.y
git branch x.y
Line 173: Line 190:
</source>
</source>


=Statistics=
=Estadísticas=
To count number of changes developers have made between a version x and y:
Para contar el número de cambios que los desarrolladores han realizado entre una versión x e y:
* First, run git merge-base to know the id of last common commit between x and y
* Primero, ejecute git merge-base para conocer el id del último commit común entre x e y
<source lang="bash">
<source lang="bash">
git merge-base origin/3.1 origin/develop
git merge-base origin/3.1 origin/develop
</source>
</source>
* Then run git log to have list of all changes from last common commit to last commit
* Entonces ejecutar un git log para obtener un listado desde el último commit común al último commit
<source lang="bash">
<source lang="bash">
git log id_found_at_previous_step..HEAD
git log id_found_at_previous_step..HEAD
</source>
</source>
* To get total number of added/deleted lines:
* Para obtener el total de líneas añadidas/eliminadas:
<source lang="bash">
<source lang="bash">
git log --ancestry-path --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
git log --ancestry-path --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
</source>
</source>


 
Para contar el número de cambios finales entre una versión x e y (se diferencia del recuento anterior porque en el recuento anterior, un cambio puede hacerse 2 veces en dos momentos diferentes para cambiar de forma diferente. Con el segundo método, se cuentan los cambios finales encontrados si los cambios estaban bien al primer intento):
To count number of changes finally between a version x and y (it differs from previous count because in previous count, a change can be done 2 times at two different moment to change differently. With second method, you count change finally found if changes were ok at first try):
* Usar el método anterior pero usando git diff.
* Use same method than previously but instead of running git log, run git diff.
<source lang="bash">
<source lang="bash">
git diff -b -M --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
git diff -b -M --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
Line 196: Line 212:




More information in GIT usage is available [http://wiki.eclipse.org/EGit/User_Guide here].
Más información del uso de GIT disponible en [http://wiki.eclipse.org/EGit/User_Guide here].

Latest revision as of 02:21, 14 September 2023

Esta es información sobre cómo puede obtener las fuentes del proyecto Dolibarr.

Obtener la última versión de los fuentes por descarga

Este método le permite obtener los fuentes de la rama de desarrollo principal (Llamada HEAD). La operación consiste en recuperar la última versión de los archivos de la aplicación Dolibarr que son compilados cada noche en un archivo. Este archivo se encuentra disponible en el siguiente enlace:

Last GitHub snapshot of Dolibarr source files.

Los nuevos archivos reemplazarán los antiguos

El problema de este método es que hace falta descargar y descomprimir el paquete cada vez que deseemos actualizar.

Obtener la última versión de los fuentes usando un acceso anónimo GIT

Prerrequisitos

Debe tener una instalación funcional de Eclispe, el plugin EGit también debe estar instalado. Para instalarlo, use Help desde el menú Eclipse, seguidamente haga click en Install new software y click en Available software site. En la lista de direcciones que aparece, busque el enlace :

http://download.eclipse.org/egit/updates

Seguidamente escoja instalar EGit.

Proceso de Clonado

Para obtener los fuentes con el objetivo de editarlos, necesita un GitHub con acceso de escritura al repositorio Git remoto y un cliente GIT (herramienta en línea de comandos en linux o el cliente GIT en Eclipse). Vea el siguiente capítulo para ello..

En primer lugar, introducir el valor del repositorio con los fuentes de referencia en la herramienta de cliente de GIT.

  • Con Eclipse, escoja "Clone GIT repository". Introduzca la URL GIT del proyecto a obtener.

La Url para los fuentes oficiales de Dolibarr es:

git@github.com:Dolibarr/dolibarr.git
or
git://github.com/Dolibarr/dolibarr.git (read only)

Su cliente GIT de Eclipse le preguntará en que ramas está interesado. Las ramas no seleccionadas podrán seleccionarse después mediante un "Fetch" desde la vista "Remotes", pero trate de elegir sólo la rama que usted necesita. Esto le ahorrará tiempo y problemas en el futuro.

  • Con GIT desde la línea de comandos:

Primero configure su cliente GIT:

git config --global user.name "Su Nombre"
git config --global user.email "usuario@dominio.com"
git config --list

Clone el repositorio localmente:

git clone git://github.com/Dolibarr/dolibarr.git dolibarr

Y si usa firewall, puede usar la URL alternativa:

git config --global http.proxy http://proxyuser:proxypass@proxyserver:proxyport
git clone https://gitlogin:gitpassword@github.com/Dolibarr/dolibarr.git dolibarr

Una vez que este paso se valida, el cliente de GIT se descargará todos los archivos del servidor GIT remoto. Esto puede durar varios segundos o minutos. Una vez que la descarga haya finalizado, vaya a la vista GIT - Branches - Local. En la mayoría de los casos, la rama que ha escogido ya está disponible.

Si no:

  • Con Eclipse, haga click con el botón derecho en"Branches - Remotes - La rama que desea clonar localmente".

Si escoge "Create Branch", duplicará el contenido de la rama para trabajar en forma local. Si escoge "Checkout", actualizará la vista "Working Directory".

  • Con GIT desde la línea de comandos:
git checkout develop
git checkout x.y

Esto creará la rama local y realizará un checkout de forma automática.

Si usa Eclipse, una vez que su rama se crea a nivel local, cree un proyecto de PHP a partir del asistente eligiendo "Create from existing project" y seleccione el directorio de su repositorio GIT local (No use create a PHP project from scratch). A continuación haga click con el botón derecho del ratón en su workspace y escoja "Team - Share". Seleccione GIT y haga click en la opción "Use or create repository in parent folder of project".

Un método alternativo es usar el menú File->Import, Git->Project from Git, Seleccione el repositorio GIT y haga click en Next, Use New project Wizard -> Php project, indique el directorio de su repositorio local GIT.


Seguidamente, puede configurar Eclipse para evitar analizar todos los archivos del proyecto (Outline scanner, TODO scanner, syntax scanner...). Esto evitará que Eclipse se vuelva lento. Para ello, haga clic derecho en el proyecto, elija Build Path y configure como la siguiente captura de pantalla.

Eclipse php build path.png

Obtener la última versión de los fuentes usando un acceso completo GIT

Prerrequisitos

Debe tener una instalación funcional de Eclipse, el plugin EGit también debe estar instalado. Para instalarlo, use Help desde el menú Eclipse, seguidamente haga click en Install new software y click en Available software site. En la lista de direcciones que aparece, busque el enlace :

http://download.eclipse.org/egit/updates

Seguidamente escoja instalar EGit.

Debe crear antes una cuenta en GitHub (https://github.com/) y subir un certificado público RSA o DSA en su account profile.

Proceso de Clonado

El proceso es el mismo que el explicado en la obtención de los fuentes con acceso anónimo.

la URL a usar para clonar GIT es la misma:

git@github.com:Dolibarr/dolibarr.git

Tenga en cuenta que también se encuentra disponible una dirección URL HTTP, pero a veces se encuentra fuera de línea:

https://yourgitlogin@github.com/Dolibarr/dolibarr.git

Actualizar su repositorio

Para actualizar su workspace local, haga clic con el botón derecho en el proyecto de Eclipse y seleccione "Pull".

Si usted realiza algunos cambios en su workspace de Eclipse, el cliente GIT realizará una fusión automática en los archivos que hayn cambiado en la referencia GIT remoto.

  • Si se producen conflictos, la fusión marcará todos los archivos con conflictos como "conflict" (Ver más adelante para resolver este estado).
  • De lo contrario, recibirá todos los archivos de la nueva versión, incluyendo todos sus cambios.

Si ya ha comiteado algunos archivos en su repositorio local, su workspace se marcará como "Merged". Todo lo que hay que hacer es crear un commit para validar su repositorio local, incluyendo sus cambios y los cambios realizador por otros.

Comitear y publicar sus cambios

Para ver todos los cambios realizados en su workspace y la espera de ser añadidos en Git:

  • Con la línea de comandos GIT:
git status
git diff subdir/filename

Para añadir los cambios realizados en el repositorio local en el índice GIT, confirmar este índice:

  • Con Eclipse: Clic con el botón derecho del ratón en el archivo o directorio a comitear. Seleccione archivo a añadir/eliminar/actualizar en el comit.
  • Con la línea de comandos GIT:
git commit -a -m "Commit text"

Esto guardará y añadirá todos los cambios en su rama local.

Para realizar un push al repositorio GIT del servidor,

  • Con Eclipse: hacer clic con el botón derecho en el proyecto y elegir "Team - Push to Upstream".
  • Con la línea de comandos GIT:
git push

Para cancelar un comit:

  • Con la línea de comandos GIT:
git revert IdCommit  o  git revert HEAD  (para el último comit)

Añadir un commit externo al repositorio

Algunos desarrolladores pueden trabajar y realizar commits en su repositorio GIT después de haber realizado un fork al proyecto.Si está interesado en conseguir esos cambios, puede importarlos realizando los siguientes pasos en Eclipse:

  • Primero, vaya a la vista GIT setup y haga clic con el botón derecho del ratón en"Remotes" de su Eclipse Git working space y elija "Create a remote..."
  • Indique nombre o el fork remoto que el desarrollador ha creado (en la mayoría de los casos, es el GIT login del desarrollador). Por ejemplo: "thedevlogin". Elija también "Configure Fetch".
  • Teclee la URI del respositorio GIT del desarrollador. Por ejemplo: git://github.com/thedevlogin/dolibarr.git. Añada un valor refspec value para declarar la rama que desea obtener. Por ejemplo: refs/heads/master:refs/remotes/thedevlogin/master. Clic "Save and Fetch". Se habrá añadido una nueva entrada en "Remote Tracking" haciendo posible la lectura/obtención de los commits realizados en esa rama.

Ahora, ir a la línea de comandos de su repositorio GIT (en la mayoría de casos en Linux, es/home/sulogin/git/sudolibarr) y teclee el comando git cherry-pick:

git cherry-pick -x commitid

donde el commitid es el valor del commit id que desea obtener.

Una vez hecho esto, vuelva a Eclipse y haga un refresh sobre el proyecto. Verá los archivos modificados aparecen con decoradores (con conflictos si hay).

Solucionar un conflicto

Si un archivo se ha marcado como "Conflict" después de un "Pull", ábralo para editarlo. Busque el string "<<<<<<<<<<", podrá ver parte del código conflictivo entre "<<<<<<<<<" y ">>>>>>>>". Edite manualmente las líneas de código y elimine "<<<<<<<<" y ">>>>>>>".

Seguidamente haga clic con el botón derecho del ratón en el archivo y seleccione "Add".

Si prefiere perder completamente todos los cambios realizados por usted en todos los archivos (restaurar su workspace con el contenido del repositorio remoto), puede realizar un hard resett:

  • Con Eclipse, clic con el botón derecho del ratón sobre el nombre del proyecto y seleccione "Reset" - "Hard" - "Reference - HEAD".
  • Con la línea de comandos GIT, se puede lograr esto con el comando
git reset --hard HEAD

Tagging fuentes

Para añadir un tag a la versión actual:

git tag -m "Tag for x.y.z_YYYYMMDD" "x.y.z_YYYYMMDD"
git push --tags

Crear una nueva rama

Este es el comando a usar para crear una nueva rams desde un repositorio clonado de desarrollo:

git branch x.y
git push origin x.y

Estadísticas

Para contar el número de cambios que los desarrolladores han realizado entre una versión x e y:

  • Primero, ejecute git merge-base para conocer el id del último commit común entre x e y
git merge-base origin/3.1 origin/develop
  • Entonces ejecutar un git log para obtener un listado desde el último commit común al último commit
git log id_found_at_previous_step..HEAD
  • Para obtener el total de líneas añadidas/eliminadas:
git log --ancestry-path --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'

Para contar el número de cambios finales entre una versión x e y (se diferencia del recuento anterior porque en el recuento anterior, un cambio puede hacerse 2 veces en dos momentos diferentes para cambiar de forma diferente. Con el segundo método, se cuentan los cambios finales encontrados si los cambios estaban bien al primer intento):

  • Usar el método anterior pero usando git diff.
git diff -b -M --numstat --pretty="%H" id_found_at_previous_step..HEAD | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'


Más información del uso de GIT disponible en here.