MediaWiki-Extension: SVNIntegration

URL dieses Beitrags: http://blog.stefan-macke.com/2008/04/29/mediawiki-extension-svnintegration/

Gestern habe ich meine erste “offizielle” MediaWiki-Extension auf mediawiki.org eingestellt: SVNIntegration. Ich habe zwar schon einige Sachen für unser Wiki entwickelt (z.B. ein Berechtigungskonzept und eine Art ToDo-Liste für die Mitarbeiter) aber die waren sehr speziell und nicht unbedingt für die Öffentlichkeit interessant (jedenfalls meiner Meinung nach).

Eine Subversion-Integration, wie es sie z.B. auch für DokuWiki gibt (Plugin Websvn), wäre jedoch vielleicht auch für den ein oder anderen interessant, sodass ich meine Erweiterung wie gesagt veröffentlicht habe. Sicherlich kann man auch darauf verzichten und gleich Trac verwenden, aber wenn sich ein Wiki einmal etabliert hat, möchte ich es ungern durch eine neue Software ablösen.

Was kann die Erweiterung denn nun so alles? Bislang lediglich drei Aufgaben:

  • Dateiinhalte aus Subversion (SVN) auslesen und anzeigen (inkl. Syntax-Highlighting)
  • Eine kleine Info-Tabelle für eine Datei anzeigen (letzte Änderung, Autor, Revision etc., siehe Beispiel unten)
  • Die Änderungshistorie einer Datei ausgeben

Dabei werden übrigens Commit-Messages, die MediaWiki-Markup enthalten, in HTML umgewandelt und entsprechend formatiert (Siehe Beispiel unten. Dass der zweite Aufzählungspunkt nicht umgewandelt wird, liegt daran, dass ich das falsche Markup (nämlich das von Trac) verwendet habe :) ).

Selbstverständlich funktionieren alle Parameter, die man Subversion auf der Kommandozeile übergeben kann. Hier ist ein Beispiel, das zu dem im Bild gezeigten Ergebnis führt:

<SVNFileInfo username="user" password="pass" revision="67">http://svn.intranet/Sourcecodes/Natural/V-SYSTEM/VOLLVST.nat</SVNFileInfo>

Beispiel für einen SVNIntegration-Befehl: SVNFileInfo

Download

Wie auch auf der MediaWiki-Seite verlinkt, gibt es die Extension hier zum Download: Download von SVNIntegration.

Kommentare zu diesem Beitrag

  1. Gravatar Rhododendronbusch
    Am 1. Mai 2008 um 08:22 Uhr

    Hallo! Diese Extension ist so ziemlich genau das, was ich gesucht habe. Scheint sie doch so mit das einzige zu sein, welches eine Schnittstelle zwischen Subversion und Mediawiki herstellt. Vielen Dank für die Mühe!
    Leider funktioniert die Extension bei mir nicht korrekt und gibt mir bei allen Repositories eine Fehlermeldung aus. Details habe ich auf die Diskussionsseite der entsprechenden Mediawiki-Seite geschrieben. Es wäre toll, wenn Du mal einen Blick drauf werfen würdest!

    Viele Grüße,
    Rhododendronbusch

  2. Gravatar Stefan
    Am 1. Mai 2008 um 11:31 Uhr

    Du hast die Tags falsch geschlossen: Start- und Endtag stimmen nicht überein. Die URL wird bei mir als gültig erkannt!

  3. Gravatar Frank Rentmeister
    Am 11. August 2009 um 14:59 Uhr

    Hallo! Erstmal super Extension. Leider habe ich damit arge Probleme bzw. vermutlich zu wenig wissen, warum sie dennoch nicht klappt. Nach implementation, der Extension, habe ich jedesmal folgende Meldung, wenn ich es in der Mediawiki ausführe.

    Als BEispiel zur Integration habe ich http://svn.intranet/Sourcecodes/Natural/V-SYSTEM/VOLLVST.nat genutzt, natürlich mit meinen Zugsangsadten und SVN Source vorgaben. Ich nutzt SVN 1.042!

    are invalid switches for VersionControl_SVN_Info and were ignored. Please refer to the documentation.

    Eventuell kennen Sie das Problem und können mich aufklären wo sie das Problem sehen.

  4. Gravatar Stefan
    Am 12. August 2009 um 11:22 Uhr

    @Frank: Sorry, die Fehlerbeschreibung ist ein wenig dürftig…
    1) Du hast meine URL benutzt? Das kann nicht funktionieren.
    2) Welche “switches” sind denn “invalid”? Könntest du nicht die gesamte Fehlermeldung posten?

  5. Gravatar Frank Rentmeister
    Am 12. August 2009 um 16:00 Uhr

    Hallo Stefan,

    kann ich dir dazu eine Email zukommen lassen?

    Öffentlich kann ich das leider nicht so weiterleiten.

    Gruß Frank

  6. Gravatar Stefan_K
    Am 16. Februar 2010 um 19:27 Uhr

    Hallo Stefan,

    ich versuche nun seit zwei Tagen, SVNIntegration in eine MediaWiki-Installation mit XAMPP auf einem W2K§-Server ans fliegen zu bekommen, leider ohne Erfolg.
    Fehlermeldung: Could not load needed class ‘VersionControl_SVN’ in path ‘E:\Apps\xampp\htdocs\dewiki;E:\Apps\xampp\htdocs\dewiki/includes;E:\Apps\xampp\htdocs\dewiki/languages;.;E:\Apps\xampp\php\pear\;E:/Apps/xampp/php/pear’

    Kannst Du mir helfen?
    Vielen Dank für Deine Unterstützung.
    StefanK

  7. Gravatar Stefan
    Am 17. Februar 2010 um 09:52 Uhr

    @Stefan_K: Die Fehlermeldung sagt es bereits: Could not load needed class ‘VersionControl_SVN’. Du hast das PEAR-Paket VersionControl nicht installiert oder es liegt nicht im Pfad…

  8. Gravatar Stefan_K
    Am 17. Februar 2010 um 10:40 Uhr

    Hallo Stefan,
    danke für Deine schnelle Antwort, jedoch genau da ist das Problem! Der Auruf pear install Paket läuft vor die Wand mit der Fehlermeldung:
    pear install VersionControl_SVN-0.3.3
    No releases available for package “pear.php.net/VersionControl_SVN”
    Cannot initialize ‘VersionControl_SVN-0.3.3′, invalid or missing package file
    Package “VersionControl_SVN-0.3.3″ is not valid
    install failed
    Leider hilft mir diese Meldung überhaupt nicht weiter. Ich kann nicht erkennen, welche Pfade fehlen, wo das Paket installiert sein muss etc… Leider habe ich dazu bislang kein manual gefunden. Kannst Du da bitte nochmal Unterstützung leisten ?
    Vielen Dank.

    Stefan_K

  9. Gravatar Stefan
    Am 17. Februar 2010 um 12:57 Uhr

    @Stefan_K: pear install --alldeps VersionControl_SVN

  10. Gravatar Philipp
    Am 23. Juli 2010 um 23:31 Uhr

    Hallo, ein sehr schönes Plugin. Nur verstehe ich die TODO Tag Funktion noch nicht ganz. Gibt es irgendwo Hinweise wie man so einen TODO Eintrag anlegen muss um ihn dann im Wiki zu sehen?
    Vielen Dank und viele Grüße
    Philipp

  11. Gravatar Stefan
    Am 24. Juli 2010 um 23:32 Uhr

    @Philipp: Im Sourcecode muss ein “TODO” stehen, wie z.B. // TODO: fix this in Java. Der folgende RegEx wird ausgewertet: '/[\s\*\/]*(TODO|FIXME|XXX):?\s*(.*)/i'

Einen Kommentar schreiben

XHTML: Diese Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>