Inhaltsverzeichnis

Volkszaehler Repository auf github.com

Volkszähler ist OpenSource und lässt sich über https://github.com/volkszaehler abrufen. Verbesserungsvorschläge und Fehler können über https://github.com/volkszaehler/volkszaehler.org/issues eingereicht werden.

Wir nutzen zur Entwicklung das Versionskontrollsystem git. Hier findest du ein paar der alltäglichen Arbeitsabläufe:

http://www.kernel.org/pub/software/scm/git/docs/everyday.html

Im Zuge der Installation des Volkszählers (installation) wird bereits eine Kopie des sogenannten „Repositories“ aus dem git Versionskontrollsystem bei github.com angelegt.

Diese kann bei Bedarf verändert und aktualisiert werden.

Wichtig im Umgang mit git ist ist das man alle Befehle vom Wurzelverzeichnis des Projekts ausführt.

Wie aktualisiere ich meine Middleware-Installation auf den aktuellen Stand?

cd /var/www 
# ggf.Datensicherung
cp -r volkszaehler.org vz.org.bak
# Update
cd volkszaehler.org
git stash
git pull
git stash apply
# Abhängigkeiten aktualisieren
composer update
In ältere Installationen fehlen möglicherweise die Schreibrechte auf die Dateien. In dem Fall ein sudo vorne an die Befehle anstellen.
Seit 2.0 wird die Konfiguration nicht mehr volkszaehler.conf.php sondern in config.yaml gespeichert.
Die Datei config.dist.yaml kann als Vorlage genutzt werden.

Fehler beim Aufruf von Composer können daran liegen, dass Composer (http://getcomposer.org) an anderer Stelle installiert ist oder anders heißt. Evtl. hilft auch

php composer.phar update

Falls das Frontend nach dem Update einen Javascript Error meldet(„TypeError: vz.entities.updateTable is not a function“) hilft es, im Browser alle vz-Cookies zu löschen und den Cache zu leeren und ggf. am pi den Apache Webserver neu zu starten

sudo systemctl restart apache2

Bei alten Images mit Debian Woody:

sudo /etc/init.d/lighttpd restart

Wie erstelle ich erstmalig eine Kopie des git Repositories?

git clone git://github.com/volkszaehler/volkszaehler.org.git

Ich habe eine Datei geändert, wie bekomme ich wieder die Originalversion?

git checkout ./htdocs/js/options.js

Wie bearbeite ich einen Pull-Request?

git checkout -b <Quelle>-master master
git pull https://github.com/<Quelle>/volkszaehler.org.git master
git checkout master
git merge <Quelle>-master
git push origin master

Wie kann ich auf einen bestimmten Versionsstand (commit) wechseln?

git checkout <commit> , z.B.: 
git checkout e4b1f69548f3e09ff8377d12902b5fcd02e84277

Oh - die aktuelle Version auf github funktioniert bei mir nicht - wie kann ich einen Schritt zurück auf den vorhergehenden Versionsstand (commit) wechseln?

git checkout HEAD~1

Das lässt sich auch mehrfach durchführen - solange, bis man wieder eine funktionierende Version hat; nicht vergessen, beim Testen regelmäßig den Browser-Cache zu leeren und bei Änderungen im Verzeichnis „lib“ den Web-Server neu zu starten.

Wunderbar - und wie komme ich wieder zurück zum aktuellen "Head"? (also: der neusten Version aus git?)

git checkout master

Ein Pull-Request könnte mein lokales Problem lösen, wie kann ich ihn testen?

Dazu brauchen wir die ID des Pull-Request und den Branchname unter dem er erstellt wurde.

git fetch origin pull/ID/head:BRANCHNAME

Im vorliegenden Beispiel sieht das dann so aus:

git pull
git fetch origin pull/641/head:fix-caching
git checkout fix-caching
composer update

Der Pull-Request wurde in den offiziellen Code übernommen, den will ich natürlich auch wieder!

Wunderbar - und wie komme ich wieder zurück zum aktuellen "Head"?

Was kann ich tun, wenn ich einen eigenen Fork habe und diesen mal wieder aktualisieren will?

git checkout -b upstream/master
git remote add upstream git://github.com/volkszaehler/volkszaehler.org.git
git pull upstream master
git checkout master                          // [my master branch]
git merge upstream/master
git push origin master

Quelle

Wie gehe ich vor, wenn ich einen pull request schicken will?

git checkout -b name_fuer_meinen_patch # legt lokal den neuen Branch mit dem Namen "name_fuer_meinen_patch"

Jetzt Änderungen vornehmen

git add <Datei(en)> # fügt die Datei(en) zum Repo hinzu
git commit # nimmt die Änderungen in das Repo inkl. Kommentar auf
git push --set-upstream origin aggregation-add-quiet-format # schiebt die Änderungen in das Master-Repo

Anschließend Pull-Request stellen