Lets say you want to use Tiki as a basis for creating your very own project (which nearly all of us developer/contractors do), it can get very difficult to manage things while working with a team to create the desired result, right? Subversion to the rescue!
Note: This assumes you are running linux, and that you have your own svn (subversion) server
Svn has a feature called "Vendor branches", you can read more about it here if you like. But here we are going to give you instructions on how to perform such an action.
export the tiki version you'd like, I'll start with 7.x, since it is the latest to a directory called "tiki7.x". This may take some time... tiki is big ;).
svn export https://tikiwiki.svn.sourceforge.net/svnroot/tikiwiki/branches/7.x tiki7.x
We want to create the repository that you will "vendor" from. Lets we'll call it "tiki7.x" inside parent folder "vendor". We can do this by creating the folders on our system, and then importing them into svn.
mkdir vendor cd vendor mkdir tiki7x svn import -m "Creation of vendor folders" https://mysvnserver/vendor/
Now we want to create our project folder, this is where we will do our work from. We will call it "my_project". Lets create the default folder structure for a standard svn project as well.
cd mkdir my_project cd my_project mkdir tags mkdir branches mkdir trunk svn import -m "Creation of project folders" https://mysvnserver/my_project
Now we want to import what we exported from Step 1 back into our own svn server... This is going to take the most time of all the steps.
cd cd tiki7.x svn import -m "Vendor drop of tiki 7.x" https://mysvnserver/vendors/tiki7.x
Now we copy the vendor folder to that of the project.
svn copy -m "Initial Copy of Tiki 7.x to project trunk" https://mysvnserver/vendors/tiki7.x https://mysvnserver/my_project/trunk
From here we can go ahead and checkout the project from the following url https://mysvnserver/my_project/trunk using our favorite svn client, or if you'd like to do it by cli:
svn checkout https://mysvnserver/my_project/trunk my_project
Now we need to address changed that are done in tiki than need updated back into the project.
We want to basically do the same thing we did in Step 1, but this time, lets note the revision number. I added "-r33651" to the end of the folder for reference of the revision number (please use the correct revision number). This will create a directory called "tiki7.x-r33651" with the contents of the latest 7.x revision.
svn export https://tikiwiki.svn.sourceforge.net/svnroot/tikiwiki/branches/7.x tiki7.x-r33651
Now we want to update the current version of tiki7.x with that of the latest revision by using svn's magical svn_load_dirs.pl. This will create a tag called "tiki7.x-r33651".
./svn_load_dirs.pl -t tiki7.x-r33651 https://mysvnserver/vendors tiki7.x tiki7.x-r33651
Now lets merge changes locally, make sure to svn up.
svn merge https://mysvnserver/vendors tiki7.x https://mysvnserver/vendors/tiki7.x-r33651 tiki7.x-r33651
Step 8 will probably product some conflicts, go ahead and fix those, then commit.
Copy changes back to project
svn copy -m "Copy of Tiki 7.x r33651 to project trunk" https://mysvnserver/vendors/tiki7.x-r33651 https://mysvnserver/my_project/trunk