Markus Hoffrogge opened SCM-1029 and commented
Issue
If includes and/or excludes config is defined, then JGit checkIn is performing empty commits if no changes are applied to the effective fileset content BUT other files are changed that are NOT within the effective scope of the includes or excludes related fileset.
Root cause
Method JGitCheckInCommand.executeCheckInCommand is using git.status().call().{}hasUncommittedChanges(){} if there is nothing to commit returned by JGitUtils.addAllFiles(git, fileSet).
Since git.status().call().{}hasUncommittedChanges(){} returns the state of any file within the working tree of the repo, this will set doCommit true even in case there is no file changed or added in scope of the includes / excludes effective fileset.
Solution
Use OR condition of:
- status.getAdded().size() > 0
- status.getChanged().size() > 0
- status.getRemoved() > 0
instead of status.hasUncommittedChanges() if an includes / excludes FileSet is specified.
PR #238
Affects: 2.1.0
Remote Links: