I see in the documentation http://www.s9y.org/44.html the recommendation is to take an existing theme, copy it and adapt it. I have to admit that making a complete copy is not something that I like to do, as this means updates from the theme must be patched manually after every upgrade.
What I tried first is to only copy the files from the theme I want to customize to my custom theme, and then change the s9y file lookup so it first looks in the original theme directory and then in my custom theme directory. The idea is that having a small patch in one file of the s9y core is maybe better than lots of copied files which might or might not needed to be updated.
I guess this would mean to patch the serendipity_getTemplateFile in ./include/functions_config.inc.php, so I tried that but failed to get it working. (Maybe it is better that way
My current solution is to clone s9y directly from the git-repo, create a local branch from the 1.7-tag where I can check in my modifications to my local git clone. I then modify the theme I want to customize directly.
That way I hope I can update to the next release via some git merge ... I have not figured out exactly how the merge command will look like, however. Of course the git merge might create conflicts. but I prefer getting explicit conflicts over accidentally overlooking some changes.
This has the additonal advantage that I am not limited to changes in the template; e.g. I already patched the weights in the google sitemap plugin to my personal preferences.
Has anyone experience with that approach? Or how to you customize your themes and still manage to update the blog software painless?