Pregunta

A veces tengo que trabajar en el código que se mueve el reloj de la computadora hacia adelante.En este caso algunos .cpp o .h archivos de obtener su más reciente modificación de la fecha fijada para el tiempo futuro.

Más tarde, cuando mi reloj es fijo, y me compilar mis fuentes, el sistema vuelve a crear la mayoría de los proyectos debido a que algunas de las últimas fechas de modificación en el futuro.Cada una de las siguientes compilar tiene el mismo problema.

La solución que yo conozco son:

a) Encontrar el archivo que tiene el futuro en el tiempo y volver a guardar.Este método no es ideal porque el proyecto es muy grande y se necesita tiempo incluso para windows de búsqueda avanzada para encontrar los archivos que han cambiado.

b) Eliminar todo el proyecto y re-check it out desde el svn.

¿Alguien sabe cómo puedo solucionar este problema?

Acaso hay una configuración en visual studio que me permitirá decirle al compilador que utilice el bit de archivo en lugar de la última fecha de modificación para detectar el origen de los cambios en el archivo?

O tal vez hay una recursiva fecha de modificación de la herramienta de restablecimiento que se pueden utilizar en esta situación?

¿Fue útil?

Solución

Si este era mi problema, me gustaría buscar formas para evitar ensuciar con la hora del sistema.Aislar el código de la unidad de pruebas, o una máquina virtual, o algo así.

Sin embargo, debido a que me encanta PowerShell:

Get-ChildItem -r . | 
    ? { $_.LastWriteTime -gt ([DateTime]::Now) } | 
    Set-ItemProperty -Name "LastWriteTime" -Value ([DateTime]::Now)

Otros consejos

Me gustaría recomendar el uso de una máquina virtual donde se puede jugar con el reloj al contenido de su corazón y que no afectará a su equipo de desarrollo.Dos son Virtual PC de Microsoft y VirtualBox desde que sale el Sol.

No sé si esto funciona en su situación, pero ¿no se mueven de su reloj hacia adelante, pero envuelva el método gettime (o lo que sea) y hacer volver el tiempo futuro que usted necesita?

Instalar Unix Utils

touch temp
find . -newer temp -exec touch {} ;
rm temp

Asegúrese de utilizar la ruta de acceso completa al llamar a encontrar o es probable que el uso de Windows' find.exe en su lugar.Esto no está probado en el shell de Windows, puede que necesite modificar la sintaxis un poco.

Yo no uso windows, pero seguro que hay algo que awk o grep que usted puede utilizar para encontrar el "futuro" de sellos de tiempo de los archivos y, a continuación, "tocar" lo que ellos tienen el derecho de tiempo - incluso un script en perl.

1) el Uso de un sistema de generación que no utilice las marcas de tiempo para detectar las modificaciones, como scons

2) el Uso de ccache a la velocidad de su sistema de generación que hace uso de las marcas de tiempo (y reconstruir todo).

En cualquiera de los casos es el uso de md5sum para verificar que un archivo ha sido modificado, no las marcas de tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top