Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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

separately.

    • -17
    • +2
    ./MirrorUpdatingDirectoryWalker.java
  1. … 32 more files in changeset.
Cache directory snapshots with default excludes

We shouldn't consider directories containing files which match the

default excludes.

    • -5
    • +12
    ./MirrorUpdatingDirectoryWalker.java
Merge branch 'master'

    • -2
    • +79
    ./MirrorUpdatingDirectoryWalker.java
  1. … 2 more files in changeset.
Remove type hierarchy for PhysicalDirectorySnapshot

We now have only one implementation.

    • -52
    • +0
    ./AbstractPhysicalDirectorySnapshot.java
    • -42
    • +0
    ./ImmutablePhysicalDirectorySnapshot.java
  1. … 5 more files in changeset.
Add builder for FileSystemSnapshots

This allows us to get rid of MutablePhysicalSnapshot.

    • -0
    • +143
    ./FileSystemSnapshotBuilder.java
    • -65
    • +0
    ./MutablePhysicalDirectorySnapshot.java
  1. … 3 more files in changeset.
Rename get{ContentHash -> Hash}

    • -1
    • +1
    ./ImmutablePhysicalDirectorySnapshot.java
    • -1
    • +1
    ./MutablePhysicalDirectorySnapshot.java
  1. … 16 more files in changeset.
Pass directory to postVisitDirectory

    • -1
    • +1
    ./AbstractPhysicalDirectorySnapshot.java
  1. … 12 more files in changeset.
Respect default excludes for snapshotting (#6085)

This feature has been lost when we moved to hierarchical snapshotting.

    • -2
    • +78
    ./MirrorUpdatingDirectoryWalker.java
  1. … 2 more files in changeset.
Rename FileSystemSnapshot{Filterer -> Filter}

    • -0
    • +148
    ./FileSystemSnapshotFilter.java
    • -148
    • +0
    ./FileSystemSnapshotFilterer.java
  1. … 3 more files in changeset.
Simplify MerkleDirectorySnapshotBuilder a little

    • -2
    • +15
    ./MerkleDirectorySnapshotBuilder.java
  1. … 3 more files in changeset.
Ignore empty non-output dirs

  1. … 3 more files in changeset.
Use the fingerprint package

    • -71
    • +0
    ./logical/AbsolutePathFingerprintCompareStrategy.java
    • -84
    • +0
    ./logical/AbsolutePathFingerprintingStrategy.java
    • -97
    • +0
    ./logical/ClasspathCompareStrategy.java
    • -224
    • +0
    ./logical/ClasspathFingerprintingStrategy.java
    • -163
    • +0
    ./logical/FingerprintCompareStrategy.java
    • -40
    • +0
    ./logical/FingerprintingStrategy.java
    • -95
    • +0
    ./logical/IgnoredPathCompareStrategy.java
    • -74
    • +0
    ./logical/IgnoredPathFingerprintingStrategy.java
    • -87
    • +0
    ./logical/NameOnlyFingerprintingStrategy.java
    • -118
    • +0
    ./logical/NormalizedPathFingerprintCompareStrategy.java
    • -94
    • +0
    ./logical/RelativePathFingerprintingStrategy.java
  1. … 75 more files in changeset.
Always calculate Merkle directory trees

    • -0
    • +148
    ./FileSystemSnapshotFilterer.java
    • -143
    • +0
    ./FilteredFileSystemSnapshot.java
  1. … 4 more files in changeset.
Use getContentHash instead of getTreeHash

    • -6
    • +0
    ./AbstractPhysicalDirectorySnapshot.java
    • -6
    • +5
    ./ImmutablePhysicalDirectorySnapshot.java
    • -2
    • +2
    ./MutablePhysicalDirectorySnapshot.java
  1. … 4 more files in changeset.
Rename Snapshot -> Fingerprint

Where applicable.

    • -1
    • +2
    ./logical/ClasspathCompareStrategy.java
    • -2
    • +3
    ./logical/FingerprintCompareStrategy.java
    • -1
    • +2
    ./logical/IgnoredPathCompareStrategy.java
  1. … 40 more files in changeset.
Move *Fingerprint to org.gradle.internal.fingerprint

    • -30
    • +0
    ./logical/AbstractFileCollectionFingerprint.java
    • -33
    • +0
    ./logical/CurrentFileCollectionFingerprint.java
    • -83
    • +0
    ./logical/DefaultFileCollectionFingerprint.java
    • -92
    • +0
    ./logical/DefaultHistoricalFileCollectionFingerprint.java
    • -22
    • +0
    ./logical/HistoricalFileCollectionFingerprint.java
  1. … 32 more files in changeset.
FileCollectionFingerprint is not a Snapshot

    • -2
    • +1
    ./logical/CurrentFileCollectionFingerprint.java
    • -6
    • +0
    ./logical/DefaultFileCollectionFingerprint.java
  1. … 4 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.

    • -3
    • +14
    ./AbstractPhysicalDirectorySnapshot.java
    • -0
    • +38
    ./FileSystemSnapshot.java
    • -0
    • +143
    ./FilteredFileSystemSnapshot.java
    • -1
    • +1
    ./ImmutablePhysicalDirectorySnapshot.java
    • -1
    • +1
    ./MutablePhysicalDirectorySnapshot.java
    • -0
    • +24
    ./PhysicalDirectorySnapshot.java
    • -0
    • +62
    ./RelativePathSegmentsTracker.java
    • -0
    • +61
    ./RelativePathStringTracker.java
  1. … 73 more files in changeset.
Separate {Current,Historical}FileCollectionFingerprint

    • -0
    • +30
    ./logical/AbstractFileCollectionFingerprint.java
    • -0
    • +34
    ./logical/CurrentFileCollectionFingerprint.java
    • -77
    • +12
    ./logical/DefaultFileCollectionFingerprint.java
    • -0
    • +92
    ./logical/DefaultHistoricalFileCollectionFingerprint.java
    • -0
    • +22
    ./logical/HistoricalFileCollectionFingerprint.java
  1. … 37 more files in changeset.
Cache filtered trees without actual filtering

When the filter always returns true, we can cache the full tree.

  1. … 1 more file in changeset.
Calculate Merkle hashes for PhysicalSnapshots

    • -1
    • +11
    ./ImmutablePhysicalDirectorySnapshot.java
    • -0
    • +87
    ./MerkleDirectorySnapshotBuilder.java
    • -26
    • +9
    ./MirrorUpdatingDirectoryWalker.java
    • -0
    • +6
    ./MutablePhysicalDirectorySnapshot.java
  1. … 14 more files in changeset.
Intern more paths/path segments for file snapshots (#5958)

It seems like f781104 caused quite an increase on memory

usage for multi project builds. We observed this in an

increased Garbage collection time when building

sanityCheck on Gradle itself (10s -> 2minutes).

This PR reduces the memory footprint by interning path

segments and relative paths in file collection snapshots.

    • -2
    • +5
    ./logical/ClasspathFingerprintingStrategy.java
    • -2
    • +8
    ./logical/RelativePathFingerprintingStrategy.java
  1. … 5 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.

    • -0
    • +47
    ./AbstractPhysicalDirectorySnapshot.java
    • -0
    • +37
    ./AbstractPhysicalSnapshot.java
    • -0
    • +162
    ./FilteredPhysicalSnapshot.java
    • -0
    • +33
    ./ImmutablePhysicalDirectorySnapshot.java
    • -0
    • +263
    ./MirrorUpdatingDirectoryWalker.java
    • -0
    • +59
    ./MutablePhysicalDirectorySnapshot.java
    • -0
    • +39
    ./MutablePhysicalSnapshot.java
    • -0
    • +70
    ./PhysicalFileSnapshot.java
    • -0
    • +40
    ./PhysicalMissingSnapshot.java
    • -0
    • +75
    ./PhysicalSnapshot.java
    • -0
    • +49
    ./PhysicalSnapshotVisitor.java
    • -0
    • +52
    ./RelativePathHolder.java
    • -0
    • +53
    ./RelativePathTracker.java
    • -0
    • +68
    ./logical/AbsolutePathFingerprintCompareStrategy.java
    • -0
    • +78
    ./logical/AbsolutePathFingerprintingStrategy.java
  1. … 117 more files in changeset.