The Eclipse Foundation is home to the Eclipse IDE, Jakarta EE, and hundreds of open source projects, including runtimes, tools, specifications, and frameworks for cloud and edge applications, IoT, AI, automotive, systems engineering, open processor designs, and many others.
The Eclipse Foundation is an international non-profit association supported by our members, including industry leaders who value open source as a key enabler for their business strategies.
Whether you intend on contributing to Eclipse technologies that are important to your product strategy, or simply want to explore a specific innovation area with like-minded organizations, the Eclipse Foundation is the open source home for industry collaboration.
The Eclipse community consists of individual developers and organizations spanning many industries. Stay up to date on our open source community and find resources to support your journey.
The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and vendor-neutral environment for open source software collaboration and innovation.
Cache FileStoreAttributes per directory, cache size can be configured via FileStoreAttributes#configureAttributesPathCache
Persist minimal racy threshold and allow manual configuration
Config section is "filesystem"
Config subsection is concatenation of
Java vendor (system property "java.vendor")
Java version (system property "java.version")
FileStore's name, on Windows we use the attribute volume:vsn instead since the name is not necessarily unique.
separated by '|'
e.g. "AdoptOpenJDK|1.8.0_212-b03|/dev/disk1s1"
The config key for minmal racy threshold is "minRacyThreshold" as a time value, supported time units are those supported by DefaultTypedConfigGetter#getTimeUnit
If the minimal racy threshold is configured for a given FileStore the configured value is used instead of measuring it.
When the minimal racy threshold was measured it is persisted in ~/.gitconfig.
Measure minimum racy interval to auto-configure FileSnapshot
Measure stored file timestamp resolution instead of time to touch file
Use Instant for smudge time in DirCache and DirCacheEntry
Use Instant instead of milliseconds for filesystem timestamp handling This enables higher file timestamp resolution on filesystems like ext4, APFS (1ns) or NTFS (100ns) providing high timestamp resolution on filesystem level.
Note: on some OSes Java 8, 9 truncate milliseconds
Up to Java 13 UnixFileAttributes truncate timestamp resolution to microseconds when converting the internal representation to FileTime exposed in the API, this was fixed for Java 14. See JDK-8181493.
WindowsFileAttributes also provides only microsecond resolution, there is no fix yet hence we filed a new bug JDK-8231174.
Add support for nanoseconds and microseconds for Config#getTimeUnit
546891, 548188 Persist filesystem timestamp resolution and allow manual configuration. To enable persisting filesystem timestamp resolution per FileStore add a new config section to the user global git configuration:
Config section is "filesystem"
Config subsection is concatenation of
Java vendor (system property "java.vendor")
runtime version (system property "java.version")
FileStore's name
separated by '|'
e.g. "AdoptOpenJDK|1.8.0_212-b03|/dev/disk1s1"
config key for timestamp resolution is "timestampResolution" as a time value, supported time units are those supported by DefaultTypedConfigGetter#getTimeUnit
If timestamp resolution is already configured for a given FileStore the configured value is used instead of measuring the resolution.
When timestamp resolution was measured it is persisted in ~/.gitconfig
Caution: do not attempt to manually configure a higher timestamp resolution than supported by the Java version being used at runtime.