The workflow here is exporting a user-configurable package def that contains objects you're interested in- e.g. campaigns in a folder- then zipping, timestamping, and sftp'ing the exported xml file. Deltas can then be tracked using diff or similar. My projects have all implemented a form of this, part of multiple layers of safeguard against accidental or malicious user behavior.