¿Hay un programa que pueda instalar para encontrar los cambios que hice en un archivo (cambios que ocurren antes de instalar ese programa)?

Este tipo de problema se resuelve de varias maneras, cada una de las cuales aborda necesidades ligeramente diferentes.

  1. Algunas aplicaciones almacenan un historial de deshacer en el archivo mismo. La mayoría de las suites de oficina hacen esto. Ciertamente, MS Office y LibreOffice lo hacen. Esto es enormemente útil, muy dependiente de la aplicación y también un gran riesgo de seguridad para las personas que cometen el error de compartir archivos que tienen algo que debería haberse mantenido privado en su historial de cambios.
  2. Algunas otras aplicaciones almacenan una copia de seguridad del estado del archivo en el momento en que se abre. Esto le permite revertir todos los cambios de su sesión de edición más reciente si es necesario. Al igual que la primera solución, depende de la aplicación.
  3. Revisión de sistemas de control. Recomiendo usarlos para absolutamente cualquier cosa que revise regularmente y conserve. Los documentos a plazo, currículums, borradores de su próxima novela, etc. son cosas excelentes para mantener en un sistema de control de revisiones. Solo pueden ayudarlo a recuperar las versiones que ingresó. Esta es una limitación que comparten con la próxima solución.
  4. Copias de seguridad. Hazlos. Regularmente. Prueba que realmente puedes restaurar desde ellos. No hay nada como tener copias de seguridad solo para descubrir que no estaba haciendo una copia de seguridad de todo lo que pensaba que era y que los archivos que necesita no están respaldados. Las copias de seguridad solo se pueden usar para restaurar lo que realmente se realizó.
  5. Almacenamiento con espejo. Esto lo salvará de al menos algunas fallas de hardware. No le permite volver a versiones anteriores, pero le da una buena copia de los archivos en un disco que acaba de morir.

Ninguno de estos lo ayudará a recuperar una versión anterior de un archivo que sobrescribió antes de comenzar a usarlos. Hay un viejo dicho que dice que hay dos tipos de personas en el mundo: aquellos que regularmente respaldan sus datos y aquellos que aún no han perdido datos. Hago copias de seguridad porque hace 20 años, perdí algunos correos electrónicos cuando murió un disco duro.

En general, no, porque el contenido de un archivo generalmente se sobrescribe directamente, lo que significa que no habrá cambios almacenados ni creará una nueva copia. Ambos consumirían espacio extra.

Podría pensar en una forma muy difícil de hacerlo, pero depende del uso de un almacenamiento de estado sólido (SSD, pendrive, tarjeta SD, eMMC). Solo puede borrar grandes cantidades de datos en una unidad flash, por lo que no puede sobrescribir los datos en su posición actual sin destruir los datos cercanos. Entonces, cuando sobrescribe algo, en realidad moverá el contenido a un nuevo lugar “fresco”. Por lo tanto, es posible leer su versión anterior. Sin embargo, me gustaría señalar que la recolección de basura generalmente eliminará esos datos rápidamente.

La razón por la que esto podría funcionar: el almacenamiento basado en Flash está formado por conjuntos de transistores de puerta flotante más grandes. Una vez que escribe el estado de una sola celda, solo puede restablecerlo si borra todo el bloque, esto es factible (requeriría una oblea mucho más grande para todos los transistores necesarios. Hay un tipo de memoria no volátil de estado sólido que le permite borrar una sola “celda” que se llama EEPROM.

Para el futuro, usaría Git o Mercurial para controlar los archivos de versión. Aunque consume espacio adicional y generalmente es un trabajo manual. También hay algunas herramientas de recuperación en Windows que le permitirán crear revisiones de ciertos archivos / sistema operativo).

Hay una gran cantidad de tales sistemas, se llaman sistemas de control de versiones y son bastante comunes.

La forma en que funcionan es que mantiene un llamado repositorio, un lugar fijo donde almacena sus archivos, programas, etc., hay una base de datos donde se guarda la versión anterior y edita una copia local, si las ediciones están bien, puede ‘ confirmar los cambios y estos se escriben en el archivo maestro, si por casualidad necesita revertir los cambios, esto también es posible.

Y para ver qué cambios se han realizado, puede usar la utilidad `diff` que le mostrará una lista de los cambios realizados, línea por línea.

Aquí hay más:

GIT [1]
Subversion [2]

Notas al pie

[1] Desarrollar mejor el software, juntos

[2] Apache Subversion

No estoy seguro de si esto es lo que estás buscando …

Normalmente tomo una copia si el archivo se preinstala, luego una copia después de la instalación.

Y use winmerge para comparar los dos archivos. Dará cambios línea por línea para archivos de texto.

Para otros tipos de archivos, podría ser necesaria una estrategia diferente.