Em geral, você não pode. Os metadados garantidos para serem armazenados são sempre os da última revisão, e qualquer outro metadado pode ser sobregravado a qualquer momento.
Se o seu ambiente for potencialmente hostil, considere usar o subsistema de auditoria do kernel para auditar e registrar as rename()
e write()
syscalls. Isso é bastante difícil, no entanto, porque você registrará volumes extremos de dados com os quais você provavelmente não se importa. Você também pode limitar sua auditoria a um subconjunto de arquivos com os quais você se importa, se quiser.
Se isso é principalmente para revisão, considere usar um sistema de controle de versão, como o Git. Isso permite que os usuários mantenham as guias nos estados dos arquivos com eficiência ao longo do tempo e é muito mais amigável do que navegar por um log de auditoria. Ele pode fazer todas as coisas que você pediu e muito mais.