« Baby Einstein Colour Kaleidoscope | The Impasse » |
Imagine this scenario: you have downloaded a particular project that has source code, and it's almost exactly what you want, but it's missing a few things, and it's not under version control (for example, the projects on SourceForge) So, you go off and make some updates to it.
Now a new version of the project comes out, and you would love to upgrade... but now there is the matter of those customizations that you did.
So what do you do?
Well, here is one approach that I used to keep my customizations to MWForum, which I used for my Cosmology forums, which fits the description of such a project.
I have made customizations to allow for named quoting and superscripts, etc., and I did not want to lose these. I did, however, want to upgrade from 2.10 to 2.15, and the project is certainly not under version control.
Now, there is a big, complicated part to this whole thing. It involves using Subversion, undoubtedly one of my favourite version control systems, to take advantage of its system of merging, on top of which, once you have done this operation, it is much easier to go off and make other changes to the project in confidence.
Note, though, that this technique only works as long as you have or can download the version of the project that you started modifying. Also, the technique will not work if there has been a complete reorganization of the target project in question! :)
If you are using Windows, you should also get TortoiseSVN, which is a fantastic shell extension for Subversion.
James Selvakumar's blog has a really good entry on installing and setting up both Subversion and TortoiseSVN.
Once you have everything installed and a repository created, here are the steps to follow:
(The process actually did work for me, by the way :)
Now, if I can find a decent FTP client that can skip the .svn directories on upload, I will be happy :)
Try downloading Total Commander and checking out the FTP client within it. I find it very flexible.
Regards,
Mike
Alternatively, you could use the official, slightly more elaborate “vendor branch” approach: http://svnbook.red-bean.com/en/1.4/svn.advanced.vendorbr.html
Mike -> I might poke my nose in there and check it out; Total Commander, if I recall correctly, has been around forever and a day. Criminy, for them to even mention .ARJ format - I swear I remember that from 20 years ago :)
mawic -> It can be much simplified organizationally, given that it is not a “vendor drop” into an existing project (I am pretty enamoured of using svn:external for vendor pieces, but I do wish that they had a relative path format to reduce work when reorganizing :)
The vendor branch starts out with a fairly similar technique, but I must admit, I had not encountered the usage of “svn_load_dirs.pl” before. I was lucky with mwForum that things did not move around much, but I am also contemplating trying to perform the same magic on b2evolution here, and they sound like they have done a ton of stuff between the 1.8.1RC that we are running here and the 2.4.2 release. That could be bad news; if things have changed too much, I might just consider examining my changes (in this case, I don’t think that there are too many) and applying them manually ;)
Either that or I would possibly end up having to check in a few separate vendor versions in order to establish enough “waypoints” for the svn_load_dirs technique…?
Now you also have me wondering whether mwForum is in a private Subversion archive somewhere :) I was wondering where I had seen your name before; now I feel silly :)