[
https://issues.apache.org/jira/browse/SCM-1029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17964021#comment-17964021
]
ASF GitHub Bot commented on SCM-1029:
-------------------------------------
jira-importer opened a new issue, #1251:
URL: https://github.com/apache/maven-scm/issues/1251
**[Markus
Hoffrogge](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=mhoffrog)**
opened
**[SCM-1029](https://issues.apache.org/jira/browse/SCM-1029?redirect=false)**
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](https://github.com/apache/maven-scm/pull/238)
---
**Affects:** 2.1.0
**Remote Links:**
- [GitHub Pull Request #238
](https://github.com/apache/maven-scm/pull/238)
> JGit performing empty commit on CheckIn command if includes or excludes
> fileset is defined but no files changed in it
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: SCM-1029
> URL: https://issues.apache.org/jira/browse/SCM-1029
> Project: Maven SCM (Moved to GitHub Issues)
> Issue Type: Bug
> Components: maven-scm-provider-jgit
> Affects Versions: 2.1.0
> Reporter: Markus Hoffrogge
> Assignee: Michael Osipov
> Priority: Major
> Fix For: 2.2.0
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> *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|https://github.com/apache/maven-scm/pull/238]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)