Difference between revisions of "FAQ Get, update GIT Projekt Quellen"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
Tag: 2017 source edit
Tag: 2017 source edit
Line 121: Line 121:
  
 
==Fork Prozess==
 
==Fork Prozess==
Login to Github, with login you created in previous step. Then go onto page
+
Melden Sie sich bei Github mit den Login-Daten an, das Sie im vorherigen Schritt erstellt haben. Gehen Sie dann auf die Seite
  
 
https://github.com/Dolibarr/dolibarr
 
https://github.com/Dolibarr/dolibarr
  
And click on button "Fork".
+
und klicken Sie auf die Schaltfläche "Fork".
  
This will create a copy (a fork) of project into your own github area. Because you will be the owner of this fork, you will have all permissions on it to be used in next steps.
+
Dadurch wird eine Kopie (ein Fork) des Projekts in Ihrem eigenen Github-Bereich erstellt. Da Sie der Besitzer dieses Forks sind, haben Sie alle Rechte, die Sie für die nächsten Schritte benötigen.
  
 
==Clone Prozess==
 
==Clone Prozess==

Revision as of 07:14, 24 September 2022

Hier finden Sie Informationen darüber, wie Sie die Quellen des Dolibarr-Projekts erhalten können. Es werden mehrere Methoden beschrieben, aber wir empfehlen, die auf GitHub basierende Methode zu verwenden.


Letzte Version der Quellen durch tgz-Download abrufen

Diese Methode kann auch von nicht-technischen Benutzern verwendet werden. Sie ermöglicht es Ihnen, die Quellen des Hauptentwicklungszweigs (HEAD genannt) zu erhalten, indem Sie einfach eine Datei herunterladen: Diese Operation besteht darin, die letzte Version der Dolibarr-Dateien zu erhalten, die jede Nacht in eine tgz-Datei gepackt werden. Die Datei ist über einen Link verfügbar:

Last GitHub snapshot of Dolibarr source files.

Neue Dateien überschreiben alte Dateien. Der Nachteil dieser Methode ist, dass Sie das Paket jedes Mal herunterladen und dekomprimieren müssen, wenn Sie Updates erhalten möchten.

Entwickler sollten diese Methode nicht verwenden, um Quellen zu erhalten, sondern die nächste.

Letzte Version der Quellen über einen anonymen GIT-Zugang abrufen

Sie können diese Methode verwenden, wenn Sie keinen GIT-Zugang haben. Mit dieser Methode können Sie keine Änderungen einreichen. Wenn Sie also ein Entwickler sind, sollten Sie ein GitHub-Konto erstellen und die nächste Methode anstelle dieser Methode verwenden.

Voraussetzungen

  • Mit Eclipse IDE

Zuerst müssen Sie eine funktionierende Installation von Eclipse haben. Das EGit-Plugin muss ebenfalls installiert worden sein. Verwenden Sie dazu den Find And Install process im Eclipse Menü, fügen Sie die GIT update URL hinzu:

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

Wählen Sie dann EGit zur Installation aus (JGit muss nicht ausgewählt werden)

  • Mit der GIT-Kommandozeilen-Client-Schnittstelle

Sie müssen den GIT-Client installieren (das GIT-Befehlszeilentool wird unter Linux mit "sudo apt-get install git" installiert, für Windows ist der GIT-Client unter https://git-scm.com/download/win zu finden).

Clone Prozess

Geben Sie zunächst den Wert des Repositorys mit den Referenzquellen in Ihr GIT-Client-Tool ein.

  • Mit Eclipse, gehen Sie in die Perspektive GIT, klicken Sie auf den Button "GIT Repository klonen". Geben Sie die GIT-URL des Projekts ein, das Sie erhalten möchten.
git://github.com/Dolibarr/dolibarr.git (read only)
oder wenn Sie einen Fork von dolibarr github von der github-Weboberfläche erstellt haben
git@github.com:yourgitaccount/dolibarr.git (read and write access)

Ihr Eclipse-GIT-Client wird Sie auffordern, die Branches auszuwählen, an denen Sie interessiert sind. Branches, die jetzt noch nicht ausgewählt sind, können später durch einen "Fetch" aus der "Remotes"-Ansicht ausgewählt werden, aber versuchen Sie, nur den Branch auszuwählen, den Sie benötigen. Dies erspart Ihnen später Zeit und Probleme.

Hinweis: Wenn Sie sich hinter einer Firewall befinden, müssen Sie die Eclipse-Proxy-Zugangsdaten im Eclipse-Menü Fenster - Einstellungen - Allgemein - Netzwerkverbindung einstellen und die alternative URL verwenden:

https://gitlogin:gitpassword@github.com/yourgitaccount/dolibarr.git
  • Mit GIT auf der Befehlszeilenschnittstelle:

Richten Sie zunächst Ihren Git-Client ein:

git config --global user.name "Your Name"
git config --global user.email "user@domain.com"
git config --list

Dann klonen Sie das Repository lokal:

git://github.com/Dolibarr/dolibarr.git (nur lesen)
oder wenn Sie einen Fork von dolibarr github von der github-Weboberfläche erstellt haben
git@github.com:yourgitaccount/dolibarr.git (Lese- und Schreibzugriff)

Hinweis: Wenn Sie sich hinter einer Firewall befinden, müssen Sie Ihre Proxy-Informationen einstellen und die alternative https-URL verwenden:

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

Sobald dieser Schritt bestätigt ist, lädt Ihr GIT-Client alle Dateien vom entfernten GIT-Server herunter. Dies kann einige Sekunden oder Minuten dauern.

Sobald der Download abgeschlossen ist, müssen Sie wählen, an welchem Zweig Sie arbeiten möchten.

  • Mit GIT auf der Befehlszeilenschnittstelle;


git checkout develop
git checkout x.y

Dadurch wird eine lokale Branche erstellt und automatisch ein Checkout durchgeführt.

  • Klicken Sie in Eclipse mit der rechten Maustaste auf "Branches - Remotes -" die Branche, die Sie lokal duplizieren möchten".

Wählen Sie " Erstelle Branch" (und markieren Sie das Kästchen "Checkout"). Dadurch wird der Inhalt der Branche dupliziert, um lokal daran zu arbeiten, und Ihr "Arbeitsverzeichnis" wird aktualisiert, um an dieser Branche zu arbeiten.

Erstellen Sie ein Eclipse-Projekt:

Wenn Sie Eclipse verwenden, erstellen Sie, sobald die Verzweigung lokal erstellt wurde, ein PHP-Projekt aus dem Assistenten, indem Sie "Create from existing project" wählen und das Verzeichnis auswählen, das Ihr lokales GIT-Repository ist (Wählen Sie nicht die Option, ein PHP-Projekt komplett neu zu erstellen).

Klicken Sie dann mit der rechten Maustaste auf das Projekt in Ihrem Eclipse-Arbeitsbereich und wählen Sie "Team - Share". Wählen Sie GIT und klicken Sie auf die Option "Use or create repository in parent folder of project". Eine alternative Methode ist File->Import, Git->Project von Git, Wählen Sie das Git-Repository und Weiter, Assistent für neue Projekte verwenden -> Php-Projekt, geben Sie den Ordner Ihres lokalen GIT-Repositorys ein.

Dann können Sie Eclipse so einstellen, dass es nicht alle Projektdateien für seine Build-Tools (Outline Scanner, TODO Scanner, Syntax Scanner...) scannt. Dies verhindert, dass Eclipse zu langsam ist. Klicken Sie dazu mit der rechten Maustaste auf das Projekt, wählen Sie Build Path und stellen Sie es wie im folgenden Screenshot ein.

Eclipse php build path.png

Abrufen der letzten Version der Quellen über einen GitHub-Nutzerzugang

Voraussetzung

  • Mit Eclipse IDE

Sie müssen zuvor ein Konto auf GitHub (https://github.com/) erstellen und ein öffentliches RSA- oder DSA-Zertifikat in Ihr Kontoprofil hochladen.

Dann müssen Sie eine funktionierende Installation von Eclipse haben. Das EGit-Plugin muss ebenfalls installiert worden sein.

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

Wählen Sie dann die Installation von EGit.

  • Mit der GIT-Kommandozeilen-Schnittstelle:

Sie müssen zuvor ein Konto auf GitHub (https://github.com/) erstellen und ein öffentliches RSA- oder DSA-Zertifikat in Ihr Kontoprofil hochladen.

Dann müssen Sie den GIT-Client installieren (GIT-Kommandozeilen-Tool unter Linux mit "sudo apt-get install git" oder den GIT-Client für Windows unter https://git-scm.com/download/win).

Fork Prozess

Melden Sie sich bei Github mit den Login-Daten an, das Sie im vorherigen Schritt erstellt haben. Gehen Sie dann auf die Seite

https://github.com/Dolibarr/dolibarr

und klicken Sie auf die Schaltfläche "Fork".

Dadurch wird eine Kopie (ein Fork) des Projekts in Ihrem eigenen Github-Bereich erstellt. Da Sie der Besitzer dieses Forks sind, haben Sie alle Rechte, die Sie für die nächsten Schritte benötigen.

Clone Prozess

Then process is same as getting sources with anonymous access.

URL to use for GIT clone is same:

git@github.com:YourGitHubLogin/dolibarr.git

Note that a HTTPS URL is also available but it's sometimes offline (so prefer using first one, link with HTTPS is required only if you are behind a firewall):

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

Update your repository

To update your local workspace:

  • With Eclipse IDE:

right click on Eclipse project and select "Pull".

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.

  • If there is conflicts, the merge will mark all conflict files as "conflict" (See later to solve this state).
  • 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". All you have to do is make a commit to validate your local repository as including your changes and changes made by others.


  • With the GIT Command Line Client Interface:
git pull

Commit and publish your changes

To see all changes you made into your working directory and waiting to be added into Git:

  • With GIT Command Line Interface:
git status
git diff subdir/filename

To add changes made into your local repository into the GIT index, then commit this index :

  • With Eclipse: Right click on file or directory to commit. Select file to add/remove/update into commit.
  • With GIT Command Line Interface:
git commit -a -m "Commit text"

This will save add and changes into your local branch.

To push them on the GIT repository server,

  • With Eclipse: right click on project and choose "Team - Push to Upstream".
  • With GIT Command Line Interface:
git push

To cancel a commit:

  • With GIT Command Line Interface, if commit was not already pushed:
git reset --soft HEAD~1
  • With GIT Command Line Interface, if commit was already pushed:
git revert IdCommit  or  git revert HEAD  (for last commit)

To merge changes done into your forked GIT instance into official Dolibarr instance:

  • Go into GitHub web interface of your forked Git instance.
  • Click on small button "Create a Pull request".
  • Choose commit you request inclusion and validate.

Ask official project to include your changes

Once you pushed one or several commit toward your distant fork area on github, you can ask the Dolibarr core team to include it into official project. For this, follow this tutorial: https://help.github.com/articles/creating-a-pull-request/

Add an external commit into current repository

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.

You need both Eclipse and GIT Command Line interface to achieve this:

  • First, go into GIT setup view and right click on "Remotes" of your Eclipse Git working space and choose "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".
  • 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.

Gehen Sie nun in die Kommandozeile Ihres Git-Repositorys (unter Linux ist es in den meisten Fällen /home/yourlogin/git/yourdolibarr) und geben Sie den Befehl git cherry-pick ein:

git cherry-pick -x commitid

wobei commitid der Wert der Commit-ID ist, die Sie erhalten möchten.

Sobald dies erledigt ist, gehen Sie zurück zu Eclipse und aktualisieren Sie das Projekt. Sie werden sehen, dass geänderte Dateien mit Dekoratoren erscheinen (mit Konflikten, wenn es welche gibt).

Wenn die Auswahl aufgrund von Konflikten fehlschlägt, können Sie den Versuch der Auswahl mit

git cherry-pick --abort


Einen Konflikt lösen

Wenn eine Datei nach einem "Pull" als "Konflikt" markiert ist, öffnen Sie die Datei und bearbeiten Sie sie. Rechercher la chaine "<<<<<<<<<<", vous verrez la partie de code en conflit entre "<<<<<<<<<" et ">>>>>>>>". Bearbeiten Sie die Codezeilen manuell, um das Endergebnis zu erhalten, indem Sie auch die "<<<<<<<<" et ">>>>>>>".

Klicken Sie dann mit der rechten Maustaste auf die Datei und wählen Sie " Hinzufügen".

Wenn Sie lieber alle Änderungen, die Sie an allen Dateien vorgenommen haben, vollständig rückgängig machen möchten (um Ihren Arbeitsbereich mit dem Inhalt des entfernten Repositoriums wiederherzustellen), können Sie einen Reset durchführen:

  • Mit Eclipse klicken Sie mit der rechten Maustaste auf die oberste Zeile des Projekts und wählen Sie "Zurücksetzen" und dann "Hard" und dann "Reference - HEAD".
  • Bei Verwendung des GIT-Befehlszeilentools erreichen Sie dies mit dem Befehl
git reset --hard HEAD

Taggen Sie die Quellen

Mit den GIT-Kommandozeilenwerkzeugen: Um ein Tag über eine Version zu erstellen:

git tag -a -m "Release|Maintenance release x.y.z" "x.y.z"
oder
git tag -a -f -m "Beta x.y.betai" "x.y.betai_YYYYMMDD" idcommit   # -f force wenn ein Tag bereits existiert, ermöglicht idcommit die Auswahl des zu taggenden Commits.
git push --tags   # Pour pousser le tags sur le serveur distant

Um einen Tag zu löschen:

git tag -d "x.y.z_YYYYMMDD"
git push origin :x.y.z_YYYYMMDD    # Um die Löschung auf dem entfernten Server zu bestätigen

Einen neue Branche erstellen

Hier ist der Befehl, den Sie verwenden müssen, um einen neuen Zweig aus einem eigenen develop-Repository zu erstellen:

git branch x.y
git push origin x.y

Statistiken

Mit den GIT-Kommandozeilenwerkzeugen:

Um die Anzahl der Änderungen zu zählen, die ein Entwickler zwischen Version x und y vorgenommen hat:

  • Zuerst führen Sie "git merge-base" aus, um die ID des letzten gemeinsamen Commits zwischen x und y zu erfahren.
git merge-base origin/3.1 origin/develop
  • Dann führen Sie git log aus, um eine Liste aller Änderungen von der letzten gemeinsamen Übertragung bis zur letzten Übertragung zu erhalten.
git log id_found_at_previous_step..HEAD
  • Um die Gesamtzahl der hinzugefügten/gelöschten Zeilen zu ermitteln:
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)}'


Zählen der endgültigen Änderungen zwischen einer Version x und y (dies unterscheidet sich von der vorherigen Zählung, da bei der vorherigen Zählung eine Änderung zweimal zu zwei verschiedenen Zeitpunkten durchgeführt werden kann, um unterschiedliche Änderungen vorzunehmen. Bei der zweiten Methode werden die Änderungen gezählt, die schließlich gefunden wurden, wenn die Änderungen beim ersten Versuch in Ordnung waren):


  • Verwenden Sie die gleiche Methode wie zuvor, aber anstatt git log auszuführen, führen Sie git diff aus.
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)}'


Weitere Informationen über die Verwendung von GIT erhältlich unter: ici.