If you have a patch that is based on a different SVN revision than you have, then you should first try to apply the patch as usual. 95% of the code is unchanged between different SVN versions, so the chances are pretty good that most of the patch can be applied.
For any file that cannot be automatically patched you will get a .rej file containing only the part of the patch that cannot be applied automatically.
(On Unix you can run "find . -name '*.rej' -print" to find these files.)
Then you have to apply the contents of the .rej files manually. In the file you will usually have something like this:
--- src/game/g_buildable.c (Revision 1132)
+++ src/game/g_buildable.c (Arbeitskopie)
@@ -532,7 +557,7 @@
if( ( self->timestamp + 10000 ) > level.time )
self->nextthink = level.time + 500;
else //creep has died
- G_FreeEntity( self );
+ delayedFree( self );
}
The top two lines tell you the patched file name, the third row the position of the changed block in both files.
The following lines start either with a + or a - or a space. The lines marked with + are added lines, the lines marked with - are deleted lines and the lines marked with spaces are unchanged.
Usually the positions don't match exactly, but they give you a hint where you have to look. You should search for a piece of code that looks like the original code (only lines marked with - or space) and then add/remove the lines marked with + resp. - from the patch. (Of course you must not add the + character to the .c file.)
Having a basic understanding of C is strongly recommended to do this, or you may screw up the code.