I created my own repo using svn import on a copy of the emu code. Once that was done, I removed that copy of the emu code.
To start working with that code, I checked it out and was then able to make changes, merges, etc. to it and commit those changes to my svn repo at will.
To merge, execute the following in the top of the code checked out from your personal repo:
Code:
svn merge -r<startrev>:<endrev> <url>
startrev and endrev define the range of changes to be merged.
url is the url of the repository you are pulling the changes from to merge to your own copy.
After merging the changes, you then have to commit to your repo.
For example, to merge the changes from rev 750 to rev 755 of the emu code into your repo:
Code:
svn merge -r750:755 http://projecteqemu.googlecode.com/svn/trunk/EQEmuServer
svn commit
There are two caveats of svn merge you should be aware of.
1) If the changes from the merge create a new file, it will give you an error and not perform the merge. To fix this, find the added files and add them to your svn repo before performing the merge. As in:
Code:
touch utils/sql/svn/773_monk_rules.sql
svn add utils/sql/svn/773_monk_rules.sql
svn merge -r772:773 http://projecteqemu.googlecode.com/svn/trunk/EQEmuServer
2) If the changes from the merge conflict with one of your local code changes, you will get a C code from the merge for the affected file. You will have to edit that file to manually merge the changes for the affected areas. The affected areas will be wrapped in tags of the form <<<<<<< and >>>>>> with a ======= separator between the new and the old code. You have to edit that area to clean it up and remove the extra code and the tags and separator. Once you have done that, you need to let svn know you have done so using:
Code:
svn resolve <filename>
After you have done that for all files with conflicts, you can commit your changes to your repo.