Whoa, revision tracking -- no small topic!! An abbreviated response: Xdata in concert with dictionaries could work, though in the end likely easier to manage via an external, associated database. The latter route can be tricky if you assume a component's handle won't change (a component frequently being a composite object) which is why many solutions are based on object grouping rather than handles. Like I said, it's a vast topic.
As for stripping xdata, dictionaries .... you could, in what I typically call a lobotomizing exercise, if it yields a more svelte version of the drawing and / or you're concerned about data security. 'Course, you can encrypt data, using a combination of ambitious xoring and base 64 encoding techniques, but now I'm just going tangential on ya!
My advice? Look for an off the shelf software solution first. After exhausting those options then consider a hand rolled solution. If going the latter do a lot of work on paper first, more than one draft, and have many experienced people perform sanity checks on the design -- you'll save yourself much grief!
/fwiw