Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Move snapshotting files to own package

    • -138
    • +0
  1. … 134 more files in changeset.
Remove FileSystemSnapshotter.getContentHash

This changes the path sensitivity for artifact transforms to


    • -16
    • +0
  1. … 10 more files in changeset.
Merge file and directory cache

Instead of using two different caches for file and directory snapshots,

there is only one. We now cache the metadata of individual files


    • -26
    • +30
  1. … 32 more files in changeset.
Rename get{ContentHash -> Hash}

  1. … 21 more files in changeset.
Rename Snapshot to Hashable

    • -10
    • +10
  1. … 16 more files in changeset.
Separate fingerprints and snapshots (#5927)

This de-tangles FileContentSnapshot (and removes it) from NormalizedFileSnapshots.

Also it makes clear that only PhysicalSnapshots can be used to check if a file changed the timestamp.

  1. … 87 more files in changeset.
Retain hierarchical structure in file system mirror (#5844)

The `FileSystemSnapshotter` now returns a root for each snapshotted file, possible containing all the children in hierarchy as the directory would no the file system.

This PR also contains some performance related changes:

- Stop interning path segments: That was only necessary when we stored the same path segments in many RelativePath objects. We don't do this any more, so interning should not be necessary and make things faster.

Actually, up-to-date assemble on largeMonolithicJavaProject (parallel false)

is about 40ms faster with this change (2.5 %).

- Don't use IndexedNormalizedFileSnapshots: It seems like there are no real performance gains by using IndexedNormalizedFileSnapshots.

    • -17
    • +23
  1. … 131 more files in changeset.
Split file content caches into mutable and immutable files

Store content information about immutable files in the user home.

This means that things like external dependencies or the gradleApi

jar will only be analyzed once and that this analysis can then be

reused by other builds. This should improve build times after clean

checkouts and will also speed up our own integration tests.

  1. … 16 more files in changeset.
Fix non-detected stale output file removal (#4264)

  1. … 20 more files in changeset.
Introduced a listener type that receives notifications of the start and completion of the root, or top-most, build in a particular Gradle invocation.

Changed several services to use this instead of `BuildListener`.

  1. … 9 more files in changeset.
Avoid snapshotting a given file or directory from multiple threads at the same time.

Also moved responsibility for hashing a file/directory and caching the result in-memory from `DefaultTransformedFileCache` to `FileSystemSnapshotter` and friends, so that this is available outside of artifact transform caching and so that there is a single place that makes the decision for whether information for a given file/directory can be reused or should be calculated again.

    • -0
    • +144
  1. … 16 more files in changeset.