FAQ Get, update GIT Projekt Quellen
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.
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
Dann ist der Prozess derselbe wie bei der Beschaffung von Quellen mit anonymen Zugriff.
Die für den GIT-Clone zu verwendende URL ist dieselbe:
git@github.com:YourGitHubLogin/dolibarr.git
Beachten Sie, dass es auch eine HTTPS-URL gibt, die aber manchmal offline ist (verwenden Sie also lieber die erste, ein Link mit HTTPS ist nur erforderlich, wenn Sie sich hinter einer Firewall befinden):
https://yourgithublogin@github.com/Dolibarr/dolibarr.git
Update des Repository
So aktualisieren Sie Ihren lokalen Workspace:
- Mit Eclipse IDE:
Rechtsklick auf das Eclipse-Projekt und Auswahl von "Pull".
Wenn Sie in Ihrem Eclipse-Workspace Änderungen an Dateien vorgenommen haben, die in der GIT-Remote-Referenz geändert wurden, wird Ihr GIT-Client automatisch einen Merge durchführen.
- Wenn es Konflikte gibt, wird der Merge alle Konfliktdateien als "Konflikt" markieren (siehe später, um diesen Zustand zu lösen).
- Wenn nicht, erhalten Sie alle Dateien in der neuen Version, einschließlich aller Ihrer Änderungen.
Wenn Sie bereits einige Dateien in Ihr lokales Repository übertragen haben, wird Ihr Workspace als "Zusammengeführt" markiert. Alles was Sie tun müssen, ist ein Commit zu machen, um Ihr lokales Repository zu bestätigen, dass es sowohl Ihre Änderungen als auch die Änderungen anderer enthält.
- Mit dem GIT Command Line Client Interface:
git pull
Commit und Veröffentlichen von Änderungen
Um alle Änderungen zu sehen, die Sie in Ihrem Arbeitsverzeichnis vorgenommen haben und die darauf warten, in Git hinzugefügt zu werden:
- Mit GIT Command Line Interface:
git status
git diff subdir/filename
Um Änderungen, die Sie in Ihrem lokalen Repository vorgenommen haben, in den GIT-Index aufzunehmen, führen Sie einen commit-Befehl für diesen Index durch:
- Mit Eclipse: Klicken Sie mit der rechten Maustaste auf die zu übertragende Datei oder das Verzeichnis. Wählen Sie die Datei zum Hinzufügen/Entfernen/Aktualisieren in den nächsten Commit.
- Mit GIT Command Line Interface:
git commit -a -m "Commit text"
Dadurch werden Hinzufügungen und Änderungen in Ihrem lokalen Branch gespeichert.
Um sie auf den GIT-Repository-Server zu pushen,
- With Eclipse: Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Team - Push to Upstream".
- With GIT Command Line Interface:
git push
Um ein Commit abzubrechen:
- Mit GIT Command Line Interface, wenn der Commit noch nicht gepusht wurde:
git reset --soft HEAD~1
- Mit GIT Command Line Interface, wenn ein Commit bereits gepusht wurde:
git revert IdCommit or git revert HEAD (for last commit)
Um Änderungen, die in Ihrer GIT-Instanz vorgenommen wurden, in die offizielle Dolibarr-Instanz einzubinden:
- Gehen Sie in die GitHub-Weboberfläche Ihrer geforkten Git-Instanz.
- Klicken Sie auf die kleine Schaltfläche "Create a Pull request".
- Wählen Sie den Commit aus, dessen Aufnahme Sie beantragen, und validieren Sie ihn.
Anfrage stellen, um die Änderungen in das offizielle Projekt zu übernehmen
Sobald Sie einen oder mehrere Commits in Ihren remote Fork-Bereich auf Github gepusht haben, können Sie das Dolibarr-Kernteam bitten, diese in das offizielle Projekt aufzunehmen. Folgen Sie dazu dieser Anleitung: https://help.github.com/articles/creating-a-pull-request/
Hinzufügen eines externen Commits zum aktuellen Repository
Einige Entwickler fügen ihre Änderungen durch Commits in ihr eigenes Git-Repository hinzu, nachdem sie das Projekt geforkt haben. Wenn Sie daran interessiert sind, diese Änderungen zu erhalten, können Sie sie mit den folgenden Schritten importieren.
Hierfür benötigen Sie sowohl Eclipse als auch das GIT Command Line Interface:
- Gehen Sie zunächst in die GIT-Setup-Ansicht und klicken Sie mit der rechten Maustaste auf "Remotes" in Ihrem Eclipse-Git-Workspace und wählen Sie "Create a remote..."
- Geben Sie den Namen des entfernten Forks ein, den der Entwickler erstellt hat (in den meisten Fällen ist es das Git-Login des Entwicklers). Zum Beispiel: "thedevlogin". Wählen Sie auch "Configure Fetch".
- Geben Sie die URI des Git-Repositorys des Entwicklers ein. Zum Beispiel: git://github.com/thedevlogin/dolibarr.git. Fügen Sie auch einen refspec-Wert hinzu, um den Branch anzugeben, den Sie abrufen möchten. Zum Beispiel: refs/heads/master:refs/remotes/thedevlogin/master. Klicken Sie auf "Save and Fetch". Es wird ein neuer Eintrag in "Remote Tracking" hinzugefügt, der es ermöglicht, Commits in diesem Zweig zu lesen/zu schreiben.
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. Suchen Sie nach dem String "<<<<<<<<<<", dann sehen Sie den Teil des Codes, der zwischen "<<<<<<<<<" und ">>>>>>>>" als Konflikt markiert ist. Bearbeiten Sie die Codezeilen manuell, um das Endergebnis zu erhalten, indem Sie auch die "<<<<<<<<" und ">>>>>>>" entfernen.
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.