Hello Jenkins dev, I am having a Jenkins installation with downstream jobs and using several git repositories. To keep track of jobs relations, I have been using the Fingerprint plugin to fingerprint **/.git/FETCH_HEAD.
It used to work back with 1.431 and was broken with 1.458 at least. Still broken in 1.473. How to reproduce: ----------------- Install the finger print plugin. Create a simple job. In the workspace directory create a directory '.git' (note the leading dot), create a FETCH_HEAD file in it with some random content. Add a build step 'fingerprint' files. In the field "Files to fingerprint" fill in '.git/FETCH_HEAD'. A red error message is shown: '.git/FETCH_HEAD' doesn't match anything: even '.git' doesn't exist The help message give a link to "the workspace", that file browser does show a .git directory containing a FETCH_HEAD file. Lame investigation: ------------------- I am not a Java guy but the plugin had no recent changes and basically just do: Fingerprinter fingerprinter = new Fingerprinter(this.targets, false); return fingerprinter.perform(build, launcher, listener); The dirScanner was changed with JENKIN-13165 [1] to allow plugins to disable the ant defaultExclude (which exclude the .git files) commit sha1 is 0725d27. Fingerprinter uses Util.createFileSet() with a null exclude list but I believe it still apply ant defaultExclude. So I believe it is probably an easy fix that would consist in copying the fix to dirScanner to createFileSet and have FingerPrinter pass the option to disable defaultExclude. [0] https://issues.jenkins-ci.org/browse/JENKINS-14355 [1] https://issues.jenkins-ci.org/browse/JENKINS-13165 [2] https://github.com/jenkinsci/jenkins/commit/0725d2765da789e02914deb4893a449eeda6a820 -- Antoine "hashar" Musso
