I have made some custom changes to my theme files template, CSS and tpl files. Is there a best practice method of updating the theme besides going line by line and re-inserting my custom changes after uploading the new theme? Is there a better way to approach this in the future?
You asked "Is there a better way to approach this in the future?".
An alternative to modifying the theme you're basing things on (which I favour) is subthemeing, with which you extend the existing theme by overriding only the aspects you wish to change. This allows you to upgrade the original theme and retain your code separately.
- http://drupal.org/node/441088 Quick and Dirty Subthemeing
- http://drupal.org/node/225125 Subtheme structure and inheritance
This approach isn't entirely a free pass against maintenance, though.
- If a fix is applied to the core theme and you've copied the (previously broken) code to your subtheme, then you'll retain the broken code as an override.
- If a change is made to the base theme which your subtheme doesn't account for, you'll need to handle that.
So - you will still need to review updates to the core theme, but this approach (for me) makes the most sense, means I'm maintaining the smallest amount of code, and provides a fairly straightforward way to build on the existing themes Drupal offers.
If you don't have to, don't do it.
I used to do it when Zen 1.x was in development, I would simply run a Diff tool (Changes App) over the latest Starterkit and my sub-theme, and then where necessary over the original source files and the renamed/modified file.
It is a major hassle to do so and a perfect case on why you should not use a Development module for purposes other than helping test and develop.
Themes, unlike modules, generally don't hold enough of a security risk or must have features when they are updated and therefore there really is no need to update to the latest. If it ain't broke...
If you're not interested in reinventing your theme by making it a subtheme of a base theme, you can go step by step through http://drupal.org/update/themes/6/7 to update your theme. It may seem like a lot, but if you work it methodically you should meet with success. It would probably take a few hours to go through all the markup, depending upon your theme's complexity. Updating your css may take more time. That really depends upon how much has changed in the ids and classes you targeted, as some modules and core functions have renamed classes and ids in their D7 ports.