Git für Administratoren
Die empfohlene Vorgehensweise ist Git. Dieser Artikel beschreibt, wie Sie Moodle auf Ihrem Produktivserver über Git aktualisieren. Wenn Sie eigene Codeanpassungen haben, folgen Sie den Anleitungen in diesem Artikel Quick Git start guide for Moodle development (englisch).
Um Git effektiv nutzen zu können, sollten Sie die wichtigsten Konzepte verstanden haben (siehe Quellenangaben im Abschnitt Siehe auch). Das kann einen gewissen Einarbeitsaufwand erfordern, insbesondere wenn Sie bisher mit CVS oder Subversion gearbeitet haben.
Git (Windows, OSX, Linux)
- Eine Download-Liste für verschiedene Betriebssysteme finden Sie auf der Git-Seite http://git-scm.com/download.
- Wenn Sie Git heruntergeladen und auf Ihrem System installiert haben, sollten die im folgenden beschriebenen Befehle funktionieren.
Moodle-Code über Git holen
Hier beschreiben wir die kommandozeilen-basierte Version von Git. Grafische Benutzeroberflächen sind letztendlich nur Hüllen, darunter verbirgt sich ebenfalls die Kommandozeilenversion.
Das offizielle Moodle Git Repository finden Sie unter git://git.moodle.org/moodle.git (ein offizieller Clone liegt unter git://github.com/moodle/moodle.git). Um einen lokalen Checkout zu initialisieren, verwenden Sie folgende Befehle
$ git clone git://git.moodle.org/moodle.git (1) $ cd moodle $ git branch -a (2) $ git branch --track MOODLE_22_STABLE origin/MOODLE_22_STABLE (3) $ git checkout MOODLE_22_STABLE (4)
- Befehl(1) initialisiert das neue lokale Repository als einen Clone des Remote moodle.git Repository. Das Remote Repository wird standardmäßig als Quelle bezeichnet. Es legt ein neues Verzeichnis moodle an, in das alle Dateien heruntergeladen werden. Dieser Prozess kann eine Weile dauern, weil die gesamte Historie aller Moodle-Versionen mit gezogen wird.
- Befehl (2) listet alle verfügbaren Zweige (branches) auf.
- Mit Befehl (3) legen Sie einen neuen lokalen Zweig (Branch) an, der MOODLE_22_STABLE heißt, und setzen diesen Zweig so, dass er dem Remote branch MOODLE_22_STABLE vom Remote Repository folgt.
- Befehl (4) stellt auf den neuen lokalen Zweig um.
Beachten Sie, dass Git eine Vielzahl von Optionen für jeden einzelnen Befehl bereitstellt. U.a. können Sie die obigen Befehle durch geeignete Optionen in einen einzigen Befehl packen.
Git hinter einer Firewall
Git verwendet ein proprietäres Protokoll, dass von Ihrer Firewall blockiert werden könnte (Port 9418). Wenn das ein Problem ist, dann können Sie die Github-HTTP-Version unter https://github.com/moodle/moodle.git verwenden. Sie ist etwas langsamer, verwenden Sie also wenn möglich das Git-Protokoll.
Installation aktualisieren
Das Moodle-Entwickler-Team führt Integrationen und Tests für behobene Fehler immer montags und dienstags durch. Mittwochs können Sie alle neuen Patches installieren, indem Sie Ihren Code aktualisieren. Prüfen Sie unter Shortlog, ob das offizielle Repository aktualisiert wurde.
Um Ihren Code auf die neueste Version zu aktualisieren (auf einem MOODLE_22_STABLE Branch) müssen Sie nur folgende Befehle ausführen:
$ cd /path/to/your/moodle/ $ git pull
Wenn es sich um ein Produktiv-System handelt, beachten Sie bitte die Sicherheithinweise im Artikel Aktualisierung von Moodle (Erstellen von Sicherungskopien der Moodle-Site).
Ein Plugin über das Git Repository installieren
Im folgenden wird ein Weg beschrieben, wie Sie ein Plugin aus einem anderen Git Repository in Ihr Moodle Repository hinzufügen. Eine andere Möglichkeit ist die Verwendung von Git Submodules (nur für Fortgeschrittene!).
Beispiel: Angenommen, Sie wollen das Buch-Modul aus dem Git Repository in Ihr Moodle 2.2 installieren:
$ cd /path/to/your/moodle/ $ cd mod (1) $ git clone git://github.com/skodak/moodle-mod_book.git book (2) $ cd book $ git checkout -b MOODLE_22_STABLE origin/MOODLE_22_STABLE (3) $ git branch -d master (4)
Befehl (1) wechselt in das mod Unterverzeichnis Ihres lokalen Moodle Repositorys. Befehl (2) legt ein neues Unterverzeichnis book an und erstellt einen lokalen Clone von Petr Škoda's vanilla Book Repository. Befehl (3) legt einen neuen lokalen Zweig an, der dem Remote branch von Book für Moodle 2.2. folgt. Befehl (4) löscht den Master, der automatisch durch das git-clone-Kommando in Befehl (2) angelegt wurde, weil wir dies im Produktiv-Checkout nicht wollen.
Es empfiehlt sich, das neue Verzeichnis mod/book/ zur Liste der ignorierten Dateien im Haupt-Moodle-Clone hinzuzufügen, andernfalls erinnert Sie der Status des Haupt-Clones ständig daran, dass der neu Code nicht eingecheckt wurde:
$ cd /path/to/your/moodle/ $ echo /mod/book/ >> .git/info/exclude
Um Ihre Moodle-Installation zu aktualisieren, müssen Sie beide Git Repositories besuchen und Aktualisierungen von Remote ziehen:
$ cd /path/to/your/moodle/ $ git pull $ cd mod/book $ git pull
Sie können diese Befehle in einem Shell-Skript im Wurzelverzeichnis der Moodle-Installation hinterlegen.
Siehe auch
Moodle Docs:
- Moodle-Versionen
- Einige Screenshots von Frank Ralf (in Arbeit)
- Tracker Einträge (MDL) / Moodle CONTRIButing Code ... Sam Hemelryk
Diskussionsbeiträge auf moodle.org:
- GIT help needed
- Best way to manage CONTRIB code with GIT
- Handy Git tip for tracking 3rd-party modules and plugins
- Moodle Git repositories
- Git and CVS
Externe Quellen: