let me guess:
- unzip the .docx file into xml files
- parse the xml into something organizable by line (csv? etc)
- commit this other file format
- in the GUI of your app, when someone selects a snapshot in time, go from the by line (csv? etc) format back to .docx
- open in word
- profit
(way back when we did this with excel, but ultimately gave up https://github.com/decisive-wizard/GridHub)