Hi,

While reconciling a build in a remote build cache with local builds, I
noticed that if there is any file in the root of a module (say
`my-module/foo.txt`), this will result in a mismatch in `buildsdiff.xml`:

<mismatch item="source files" reason="Remote and local cache contain
different sets of input files. Added files: [foo.txt]. Removed files: []"
resolution="To match remote and local caches should have identical file
sets. Unnecessary and transient files must be filtered out to make file
sets match - see configuration guide" />

This was unexpected, as I defined my input like this:

  <input>
    <global>
      <glob>
        {*.java,*.kt,*.yaml,*.yml,*.properties,*.xml}
      </glob>
    </global>
  </input>

Since this glob pattern won't match a file `foo.txt`, I did not expect this
to happen. If I add this to the <input><global> tag, this does not happen:

  <input>
    <global>
      <glob>
        {*.java,*.kt,*.yaml,*.yml,*.properties,*.xml}
      </glob>
      <excludes>
        <exclude glob="foo.txt"/>
      </excludes>
    </global>
  </input>

My question now is how the <glob>, <input>, and <output> are supposed to
interact. I've tried to get this from the documentation, but based on that
I would expect `foo.txt` not to be included since it doesn't match the
defined glob pattern. This expectation does not match the observed
behaviour.

Any pointers appreciated!

Tiemen

Reply via email to