Confluence Seite mit Unterseiten in anderen Space kopieren [Update]

Confluence bietet zwar die Möglichkeit einzelne Seiten in andere Spaces zu kopieren, aber dabei bleiben Anhänge und Unterseiten auf der Strecke. Mit dem Atlassian Command Line Interface lassen sich eine Menge netter Befehle auf der Kommandozeile ausführen, darunter auch dieser:

./confluence.sh -s https://server.local/confluence/ -u username -p secret \
-a copyPage --space currentSpace --title pageTitle --newSpace newSpace \
--parent newParentPage --descendents --copyAttachments --copyComments --copyLabels

Der Befehl verbindet sich mit dem Server und kopiert die Seite pageTitle im Space currentSpace mit all ihren Unterseiten, Dateianhängen und Kommentaren in den Space newSpace als Unterseite von newParentPage.

Die aktuelle Version des Command Line Interface kostet zwar mittlerweile Geld, die letzte freie Version (unter BSD Lizenz) ist jedoch immer noch zum Download verfügbar und kann auch schon eine ganze Menge.

Quelle: (The pain of) managing content in Confluence

Ergänzung 29.10.2012

Mit der hier beschriebenen Methode konnte ich die meisten Seiten migrieren, leider gab es in einem Punkt Probleme: Die Confluence Remote Schnittstelle kommt mit dem Upload von größeren Dateien nicht klar, die Grenze scheint irgendwo bei 5MB oder so zu liegen. Der Fehler ist bereits seit einem Jahr bekannt, hier hat sich jedoch noch nichts getan.

Dafür hat mich die Dokumentation von Confluence zum Löschen von Seiten auf eine Idee gebracht:

  • Seite aus dem alten Space in einen neuen, temporären Space 1 verschieben
  • temporären Space kopieren
  • Seite aus temporärem Space 1 zurück in den alten Space verschieben
  • Seite aus temporärem Space 2 in den Ziel-Space verschieben
  • beide temporäre Spaces löschen

Die Prozedur habe ich noch nicht getestet, ich sehe allerdings keinen Grund wieso es nicht funktionieren sollte.