If I am going to make any changes to a config file, I just initialize a repo in that directory and make my changes. This is great to track what was done during outages when normal controls and processes are out the window.
I don't use rsync as much nowadays, as now I copy files around using git. It makes it easy to make sure two systems are in sync with one another.
If I want to compare directories A and B, often I will just create a repo in A and dump the contents of B on top of it.
And local clones and easy branches means it is easy to test crazy code and break source trees.
EDIT: One more thing, jgit is great for systems where you can't install git (like AIX, where it is a pain to get the packages). It's a single java jar that you can deploy to any system that has java http://eclipse.org/jgit/. I take the .sh script that wraps the .jar file and symlink it to a 'git'.
reply