[xwiki-users] Default XAR merge on import
According to the installation/upgrade guide, "You may want to upgrade to a newer version of the Default Wiki XAR in order to benefit from the latest changes. As mentioned above in the "Installing the Default Wiki XAR" section you should be very careful and when doing the import make sure you selectively decide what pages you wish to import." Is there any particularly good recommended way of doing this efficiently? I'm just musing here, but it seems as though the wiki (potentially) has the entire revision control history of these default pages. Given that, it should be able to compare the initial default state, the current state (possibly user-edited or not), and the state of the new default state for each file within the XAR, and use this information to perform a three-way merge. I could imagine that merge on import would be beneficial in other applications if doing crazy applications involving branching/cloning wikis on a wiki farm or something like that. I personally don't need any pretty xwiki app to do this, if I can accomplish it in my shell, it'd be fine. And barring comments, I'll try to work this up on my own. Still if such an app could be devised, I should think it'd make the upgrade process friendlier to the more casual administrator. The major problem I'd foresee is either finding a platform independent merge tool, or forcing the user to point to their own merge tool and command line syntax (similar to Subversion's configuration). Again, I may be over thinking this, but any thoughts on the matter would be appreciated. Paul Grodt Software Engineer Tecore Networks
According to the installation/upgrade guide, "You may want to upgrade to a newer version of the Default Wiki XAR in order to benefit from the latest changes. As mentioned above in the "Installing the Default Wiki XAR" section you should be very careful and when doing the import make sure you selectively decide what pages you wish to import."
Is there any particularly good recommended way of doing this efficiently? [...]
I would be interested in some pointers here, too. Currently for every upgrade most of the time I am busy with comparing the exported and unpacked *.xar of my wiki with the differences between the xwiki-enterprise-*.war from the corresponding releases, and update the *.xml files manually. When I reimport the changes files again in the running xwiki I always have the fear of overwriting some important local modifications, or forgot to add important updates from the release. I guess there must be better ways to do it, and maybe someone already knows one ;)
I personally don't need any pretty xwiki app to do this, if I can accomplish it in my shell, it'd be fine. And barring comments, I'll try to work this up on my own.
I just wondered if one day I get to the point where I could at least write an importer plugin, which accepts the pristine *.xar from the current and new release, and then updates all pages, which still have the content from the old release with the content of the corresponding page in the new release. (Well, just updating the content would not help for the Panels, which are actually the most heavily customized things in the wiki here). Though I am not there yet, partially because still have to learn the XWiki API, partially because the updates somehow went through without it. Cheers anyway, Clemens
Hi, On Dec 5, 2008, at 5:48 PM, Clemens Robbenhaar wrote:
According to the installation/upgrade guide, "You may want to upgrade to a newer version of the Default Wiki XAR in order to benefit from the latest changes. As mentioned above in the "Installing the Default Wiki XAR" section you should be very careful and when doing the import make sure you selectively decide what pages you wish to import."
Is there any particularly good recommended way of doing this efficiently? [...]
I would be interested in some pointers here, too. Currently for every upgrade most of the time I am busy with comparing the exported and unpacked *.xar of my wiki with the differences between the xwiki-enterprise-*.war from the corresponding releases, and update the *.xml files manually. When I reimport the changes files again in the running xwiki I always have the fear of overwriting some important local modifications, or forgot to add important updates from the release.
I guess there must be better ways to do it, and maybe someone already knows one ;)
Right now there are only 2 best practices: * first you should try to avoid making modification to pages bundled with the default XAR that you'd like reimport in future versions. For example if you need to change the WebSearch page you can create your own WebSearch page in your own space for example or copy it to a different name. * you could also maintain a list of default XAR pages that you have modified so that you don't overwrite them when importing a new XAR. Last there's a list of pages that you should not reimport (they are mentioned in the installation guide). Of course none of this is perfect and it won't be perfectly till we have finished the new application manager: http://dev.xwiki.org/xwiki/bin/view/Design/ApplicationManager The work for it is going to start in XE 1.8 but since it's a complex thing it'll probably be fully operational only around 1.9 or maybe even 1.10. Depends how fast we progress, the contributions, etc.
I personally don't need any pretty xwiki app to do this, if I can accomplish it in my shell, it'd be fine. And barring comments, I'll try to work this up on my own.
I just wondered if one day I get to the point where I could at least write an importer plugin, which accepts the pristine *.xar from the current and new release, and then updates all pages, which still have the content from the old release with the content of the corresponding page in the new release. (Well, just updating the content would not help for the Panels, which are actually the most heavily customized things in the wiki here). Though I am not there yet, partially because still have to learn the XWiki API, partially because the updates somehow went through without it.
Yes it's definitely possible. You could probably even reuse the diff API to compare the versions. That said what you describe is very similar to the application manager idea we have: http://dev.xwiki.org/xwiki/bin/view/Design/ApplicationManager You are very welcome to help us design it. Thomas Mortagne and Jean- Vincent Drean are the ones who have planned looking into this during the XE 1.8 timeframe. If you have some ideas fire them here for discussion and when agree we can consolidate everything on that page: http://dev.xwiki.org/xwiki/bin/view/Design/ApplicationManager Thanks -Vincent
participants (3)
-
Clemens Robbenhaar -
Paul Grodt -
Vincent Massol