I have a problem when I use maven to generate a release from a cvs branch on jenkins.
Here is the my environment :
OS windows 2003 server
jenkins 1.482
jenkins cvs plugin 2.5
maven 3
maven-release-plugin 2.1
cvs.exe native windows client 1.11.22 from http://cvs.nongnu.org (quite old, I know)
The project is a maven project, in jenkins I configured it to use a cvs branch as the code source location. The project can be compiled without any issue on jenkins, but when I try to perform a maven release, the compilation crashes. More exactly, it stops when it tries to commit the modified pom.xml to cvs server.
Here is the error message :
[INFO] [INFO] BUILD SUCCESS [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Total time: 1:40.298s [INFO] [INFO] Finished at: Thu Jan 10 15:58:36 CET 2013 [INFO] [INFO] Final Memory: 38M/247M [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Checking in modified POMs... [INFO] Executing: cmd.exe /X /C "cvs -z3 -f -q commit -R -F C:\DOCUME~1\lsa_web\LOCALS~1\Temp\scm-commit-message2086459184030940886.txt pom.xml" [INFO] Working directory: D:\xxxxx mojoFailed org.apache.maven.plugins:maven-release-plugin:2.1(default-cli) projectFailed xxx:xxx:1.0.4-SNAPSHOT sessionEnded ... message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.1:prepare (default-cli) on project xxx: Unable to commit files Provider message: The cvs command failed. Command output: cvs commit: Up-to-date check failed for `pom.xml' cvs [commit aborted]: correct above errors first! cause : Unable to commit files Provider message: The cvs command failed. Command output: cvs commit: Up-to-date check failed for `pom.xml' cvs [commit aborted]: correct above errors first!
Then I looked into the code of the cvs plugin and found that it strips out the sticky date tags after cvs check out.
https://github.com/jenkinsci/cvs-plugin/blob/master/src/main/java/hudson/scm/AbstractCvs.java#L694
Without the sticky tag (branch), the cvs.exe launched by maven during release tries to commit the modified pom.xml to HEAD which can obviously not work.
C:\TEMP\workspace>cvs.exe status pom.xml =================================================================== File: pom.xml Status: Needs Merge Working revision: 1.18.4.12 Repository revision: 1.35 /APPLICATIONS/CVS01D/xxxx/cvsrepository/xxx/pom.xml,v Commit Identifier: JtFwavfT373XqEzw Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none)
Should the plugin removes the sticky branch tag when the code is checked out from a branch ?