…is by using VCS such as git, cvs, svn etc.
The reasons are:
- Easy update, just use built-in update function. Following -branches/-trunks branch is easy
- Clean and fast update, only updating files that changed. Doesn’t work that well if the web application is rewritten from scratch though
- Retain modification, if you manually modified files that later need updating you’ll be given option to merge, keep or replace the modified file. No lost modification
Of course it doesn’t work to well if:
- the plugins/modifications/themes system involves manually modifying main program files which, IMO, a bad practice (I’m looking at most forum systems which are painful to update when using plugins)
- no shell access to the hosting. Or there is shell access but can’t use the VCS
Conclusion: you should use VCS when possible.
The statement above also implicitly saying that bbPress is the best forum system ever.