We’re excited to introduce you to the new operation in
Clarive: Git Timesync available in the upcoming 7.10.6 release. This
operation is specifically designed to update the file timestamps in your job
directory to match their respective Git commit timestamps. Let’s dive in and
see how it works and how you can utilize it in your Clarive pipeline rule.

Motivation

When Git performs a checkout or clone operation, it intentionally does not update the timestamp of the files to reflect their last commit dates. Instead, all files receive the timestamp of when the clone or checkout occurred. The primary reason for this behavior is performance. Updating file timestamps to their respective commit dates would require Git to examine the entire commit history of each file, which can be computationally intensive and slow, especially for large repositories with extensive histories. By using the clone or checkout date as the timestamp, Git can quickly populate the working directory without any unnecessary overhead. Furthermore, maintaining consistent timestamps helps build systems, like make, determine if a file needs to be rebuilt, ensuring efficient and predictable builds.

What is Git Timesync?

Git Timesync is a Clarive rule operation that updates the timestamps of files in the job directory so they align with the most recent Git commit timestamps. However, files without a Git timestamp or those from other repositories that don’t match the job’s repository will remain unchanged.

Configuration Essentials

Before using Git Timesync, it’s crucial to understand its configuration:

  • Path: This is the relative directory within each Git repository to be processed. By default, it uses . which means all files controlled by Git.

  • Git Repositories: An optional list of Git Repositories that you wish to process. If you leave it blank, all Git Repositories included in the job where the rule is running will be processed.

Remember, you can use multiple Timesync operations if you’re dealing with different path and repository combinations.

Note: If you’re working with a sizable repository or one with an extensive commit history, Git Timesync is very optimized, but it may still take a while to process all the timestamps.

Dependencies

Ensure you execute Git Timesync after these operations:

  • Load Job Items into Stash
  • Checkout Job Items or another equivalent repository checkout.

How to Use Git Timesync in a Clarive Pipeline Rule?

  1. Open your desired Clarive pipeline rule.
  2. Navigate to the palette.
  3. Simply drag the Git Timesync operation from the palette and drop it into your rule after the aforementioned dependencies.
  4. Configure the Path and Git Repositories as per your requirements.
  5. Save your rule, deploy a changeset and you’re good to go!

Git Timesync is a handy operation for those who wish to synchronize file timestamps with their Git commit timestamps, ensuring consistency and clarity. So, next time you’re working on a Clarive project, give Git Timesync a try and let it handle the timestamp synchronization for you!

Happy clariving!