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.
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
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
git clone git://github.com/volkszaehler/volkszaehler.org.git
git checkout ./htdocs/js/options.js
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
git checkout <commit> , z.B.: git checkout e4b1f69548f3e09ff8377d12902b5fcd02e84277
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.
git checkout master
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
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
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