On revisions, I am not actually sure how WikiDocs stores the old versions internally. The project advertises unlimited revisions and rollback despite using flat files rather than a database. So...dunno.
Gitit looks very capable too, especially if you already want Git as the storage and revision layer.
What appealed to me about WikiDocs was less that it had some unique technical trick and more that it packaged the things I wanted into one nice interface: Markdown files, WYSIWYG editing, namespaces, attachments, Mermaid, etc etc
EDIT: "WikiDocs stores revisions as timestamped Markdown snapshots alongside each page".
my-page/
├── content.md
└── versions/
├── 1790201234567.md
├── 1790287654321.md
└── 1790374567890.md
