client/ClientHelper.java: fix check for p4 error message when there are multiple files to reconcile
Original patch by Akos Bannerth
Closes: https://issues.jenkins.io/browse/JENKINS-72335
When using p4publish with multiple paths listed in the paths argument, and the workspace doesn't contain any changes compared to the depot, publish will fail with
Unable to publish workspace: hudson.AbortException: P4JAVA: Error(s):
No file(s) to reconcile.
This seems to be a result of a check in ClientHelper.java
getValidate().check(status, "- no file(s) to reconcile", "instead of", "empty, assuming text", "also opened by");
which apparently should ignore the p4java status "- no file(s) to reconcile" but when reconciling with multiple paths, the message is "No file(s) to reconcile." - this can be easily tested from the command line:
> p4 rec foo/...
foo/... - no file(s) to reconcile.
> p4 rec foo/... bar/...
No file(s) to reconcile.
The attached patch changes the ignore string so that it's recognized in both cases, as the check uses StringUtils.containsIgnoreCase(msg, istring) to compare the message with it.
Testing done
Built plugin and tested change on a staging server.
### Submitter checklist
- [X] Make sure you are opening from a **topic/feature/bugfix branch** (right side) and not your main branch!
- [X] Ensure that the pull request title represents the desired changelog entry
- [X] Please describe what you did
- [X] Link to relevant issues in GitHub or Jira
- [X] Link to relevant pull requests, esp. upstream and downstream changes
- [ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue
If possible, please tag a release after this is merged, thanks!
Hi, is there anything I can do to improve this patch?
This issue is also blocking our build pipeline, would be really nice to get it fixed.
Thanks for merging. Any chance of getting a release with this commit? We'd like upgrade our installation with an official binary, rather than compiling our own, if we can avoid it.
@austin987 Jenkins 1.15.2 will be released this week.