Execution Plan
- Backup the current server - DONE - SD
- Backup the svn repostitory locally - DONE - SD
- upgrade server - DONE we're now at svn 1.4.6 SD
- do an svnadmin dump (yes that 3 redundant backups in different forms - I really don't feel like losing our Source code)
- make script that does the svn mv's (pseudo-code below) DONE SD
- svn mv trunk branches/historical
- svn mv branches/MAIN/twikiplugins trunk
- svn mv branches/MAIN trunk/core
- test the script, and write documentation for howto migrate DONE - SD
- send email with timetable and migration docco DONE - SD
- wait a day or so - DONE - SD
- lock / take down svn - DONE - SD
- run script - DONE - SD
- svn mv http://svn.twiki.org/svn/twiki/trunk http://svn.twiki.org/svn/twiki/tags/PreSvn -m "Item5341: Simplify subversion organisation"
- svn mv http://svn.twiki.org/svn/twiki/branches/MAIN/twikiplugins http://svn.twiki.org/svn/twiki/trunk -m "Item5341: Simplify subversion organisation"
- svn mv http://svn.twiki.org/svn/twiki/branches/MAIN http://svn.twiki.org/svn/twiki/trunk/core -m "Item5341: Simplify subversion organisation"
- change the group permissions for svn - DONE - SD
- re-enable svn - DONE - SD
- send out success email - with migration docco - DONE - SD
- update all mentions of svn on twiki.org - I think this basically DONE - SD
- update svn scripts on develop DONE CC
- Test and port BuildContrib DONE CC
- Test and port
pseudo-install.pl
DONE CC
- add pseudo-install to trunk dir NOT DONE, NOT REQUIRED CC
- Find, test and port any other scripts that assume
twikiplugins
DONE CC
- port & update release build system (Sven) - this may happen in the next weeks DONE
I tested the change on a server at home using a backup of our svn repository:
twikistats:~/un/twiki# svn mv file:///root/repos/twiki/trunk file:///root/repos/twiki/branches/PreSvn -m "simplify svn"
Committed revision 16359.
twikistats:~/un/twiki# svn mv file:///root/repos/twiki/branches/MAIN/twikiplugins file:///root/repos/twiki/trunk -m "simplify svn"
Committed revision 16360.
twikistats:~/un/twiki# svn mv file:///root/repos/twiki/branches/MAIN file:///root/repos/twiki/trunk/core -m "simplify svn"
and then to switch my working MAIN checkout..
twikistats:~/un/MAIN# cd twikiplugins/
twikistats:~/un/MAIN/twikiplugins# svn switch file:///root/repos/twiki/trunk
note this checks out a core dir
twikistats:~/un/MAIN/twikiplugins# rm -r core
twikistats:~/un/MAIN/twikiplugins# cd ..
twikistats:~/un/MAIN# mv twikiplugins/ ../TWikiTrunk
twikistats:~/un/MAIN# cd ..
twikistats:~/un# mv MAIN TWikiTrunk/core
twikistats:~/un# cd TWikiTrunk/core
twikistats:~/un/TWikiTrunk/core# svn switch file:///root/repos/twiki/trunk/core
twikistats:~/un/TWikiTrunk/core# cd ..
twikistats:~/un/TWikiTrunk# svn up
If you have been developing Plugins by just checking out the individual Plugin's directory:
twikistats:~/un/MyTWikiPlugin# svn switch file:///root/repos/twiki/trunk/MyTWikiPlugin
if you try to update from an unswitched repository, you will get the following error
twikistats:~/un/MAIN_backup# svn up
svn: Cannot replace a directory from within
--
TWiki:Main.SvenDowideit - 11 Feb 2008
PLEASE READ THE ENTIRE EMAIL BEFORE TRYING TO SWITCH
So. the single most important thing to do, is to run
svn diff > ../PreSwitch.diff
from your MAIN checkout.
you will thus be able to apply any changes that you have made to local
files.
Next, find out if there are any files that you have added that you need
to keep, by running
svn stat
backup your TWiki MAIN checkout,
cd ..
cp -r MAIN MAIN_backup
and then you are ready to _try_ the switch.
svn diff > ../PreSwitch.diff
cp -r twikiplugins ../TWikiTrunk
cd ../TWikiTrunk
svn info
#(shows [[http://develop.twiki.org/svn/twiki/branches/MAIN/twikiplugins][http://develop.twiki.org/svn/twiki/branches/MAIN/twikiplugins]] on
my checkout)
#(if svn info shows a different host url, you need to change the switch
commands to match)
svn switch [[http://develop.twiki.org/svn/twiki/trunk][http://develop.twiki.org/svn/twiki/trunk]]
#(note this checks out a core dir )
svn up
cd core
patch -p0 < ../../PreSwitch.diff
the other, safer option, is to backup your checkout, check out a new
shadow, and then patch it with your changes
svn co [[http://develop.twiki.org/svn/twiki/trunk][http://develop.twiki.org/svn/twiki/trunk]]
--
SvenDowideit - 17 Feb 2008
i think my bit is done; at least, I don't think anyone is waiting for me to do something, so taking my name off the Waiting For list.
CC
yup, its 'just' the build scripts and the automated build system todo
--
TWiki:Main.SvenDowideit - 19 Mar 2008
I've been running the trunk builds for about a week now.
--
SvenDowideit - 01 Jun 2008