I'd like to implement a mechanism to synchronize files across multiple machines. I don't particularly care about files that are older than 1 month, so there is no need to keep that data around.

Git seems to do almost all of this except for eliminating old revisions. Is there a destructive command that lets me say "Kill all revisions older than X" ? Or if there is another VCS tool I can use to accomplish the same thing, I'd be very interested.

A list of arguments, acceptable to git rev-parse and git rev-list (and containing a named ref, see SPECIFYING REFERENCES below), that specifies the specific objects and references to transport.
For example, master~10..master causes the current master reference to be packaged along with all objects added since its 10th ancestor commit.

While a rev-list like --since=30.days.ago master would be possible, it is best to make sure the incremental bundle is build taking into account the last commit used by the last bundle (especially if that last commit is older than 30 days. If it is newer, then it doesn't matter if you take "too many" commits).