2
My method isn't ideal, but here it is.
1) I maintain a file hacks.txt, that looks like this:
XOOPS Base version: 2.2.4
---------------
INSTALLED HACKS
---------------
#*#WHOS_ONLINE_CLEANUP#
Removed the "Members: # Guests: #" from the Who's Online block.
Modified:
- modules/system/templates/blocks/system_block_online.html
Remarks:
- Since this is a template change, it might not be considered a "hack".
#*#HTTPS_FIX#
Allow blocks to be displayed on the admin index page for https:// URLs.
Modified:
- kernel/module.php
References:
- http://dev.xoops.org/modules/newbb/viewtopic.php?topic_id=1096
- https://sourceforge.net/tracker/index.php?func=detail&aid=1412858&group_id=41586&atid=430840
Remarks:
- This is a bug fix; patch posted at above sourceforge.net tracker URL.
#*#LOG_DB_UPDATES#
Log database update queries.
Modified:
- footer.php
New:
- path/to/log/dir/ (writable)
- path/to/log/dir/.htaccess (contains "deny from all")
Remarks:
- This allows us to monitor malicious or accidental database changes.
2) I label changes within files using the above tags, e.g. #*#HTTPS_FIX#. "#" is a comment character in PHP; in other contexts, the tag would need to be bracketed with the appropriate comment delimiter(s), such as <{* #*#HTTPS_FIX# *}> for Smarty.
3) I always save the full distribution .zip or .tar.gz for the base XOOPS version I'm using.
4) I use BeyondCompare for comparing directories and files.