When cloning a repository or new branch, the timestamps of the files correspond with the time when we cloned the repository, not when they were originally committed. This may cause problems downstream, for instance, when we use Git in combination with make to automate a workflow. With Git tools we can revert the timestamps of our local cloned files to the original time of their commit. Specifically, we use
git restore-mtime to do this change.
In this building block, we will lead you step-by-step toward the end goal of retoring the time stamps of your files to the original time of their commit:
- Install Git tools
- Restore repository time stamps
1. Install Git tools
1.1 Linux and Mac users
For Linux and Mac platforms, we follow the instructions of the README file from Git tools repository, but for Windows, we need to take a somewhat different approach.
1.2 Windows users
The first thing we need to do is to clone the Git tools repository. Next, we need to make sure our computer meets the following requirements:
As mentioned in the README of the Windows installation, to upgrade
setuptools to the latest versions we can use:
pip.exe install --upgrade --trusted-host pypi.org --trusted-host files.pythonhosted.org pip setuptools
To install the latest version of
pyinstaller we need to run:
pip.exe install --trusted-host pypi.org --trusted-host files.pythonhosted.org ^ https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz
Then, we need to run the Windows executable file from the Windows folder of the repository:
build_windows_executable.bat. If everything is successful, there should be a new file created:
Lastly, we need to add the path of the Git tools repository to the
PATH system variables.
2. Restore repository timestamps
After installing Git tools, we can use the function
git restore-mtime to restore the timestamps of a cloned repository to the original timestamps of their commit. For this, simply navigate to the root folder of the wanted repository and type in the Command Prompt:
Now all the times are restored.
Additionally, if we want to first preview the changes of this function, we can use:
For this example, we use the repository of the Online Data Collection and Management course to test the function. To clone the repository type
git clone https://github.com/hannesdatta/course-odcm in the Command Prompt opened in the destination folder.
We notice that the timestamps of the files correspond to when we cloned the repository locally.
git restore-mtime --test in the
cmd opened in the root folder of the repository, we get an overview of what changes would take place:
Once we run
git restore-mtime, all the timestamps of the files are changed to the original commit times.
In this building block, you learned how to restore the timestamps of a cloned repository to the original timestamps of their commit. First, you have to install Git tools. Then, with the single command
git restore-mtime you can restore the timestamps.