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.

Über Stefan

Polyglot Clean Code Developer

11 Kommentare

  1. Rhododendronbusch

    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. Du hast die Tags falsch geschlossen: Start- und Endtag stimmen nicht überein. Die URL wird bei mir als gültig erkannt!

  3. 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. @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. Hallo Stefan,

    kann ich dir dazu eine Email zukommen lassen?

    Öffentlich kann ich das leider nicht so weiterleiten.

    Gruß Frank

  6. 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. @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. 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. @Stefan_K: pear install --alldeps VersionControl_SVN

  10. 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. @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'

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax