jenkinsci / jenkinsci/subversion-plugin
[JENKINS-36561] SVN Plugin breaks builds when checking out with wrong Rev
- Dominant language
- Java
- Stars
- 131
- Forks
- 275
- Avg merge
- 12h 4m
- Merged PRs (30d)
- 6
Description
Our repositories make heavy use of Subversion Externals, and we use a "post commit hook" to trigger builds.
There are two ways to work with externals:
- With a fixed revision (@-Syntax: https://subversion-server/repopath@1234)
- With a floating revision (always up to date)
The subversion-plugin detects correctly that those projects contains data from multiple SVN-Paths and tiggers the build also when an "imported" Repo sends a post-commit-hook.
Here we observed the following problem:
The post commit hook informs Jenkins about the number of the new SVN-revision. But the Subversion-Plugin use that Revision-Number for EVERY "SVN Update"-Command regardless of whether the path matches the project-repository or not.
Case 1:
Main-Repository - Head-Rev: 1000
Imported Repository - Head-Rev. 154
Someone commits rev 155 at the imported-Repo - Subversion tries to checkout Rev 155 from the Main-Repository!
If the addressed Path in the main repository wasn't existing at rev 155 you get the following error msg:
ERROR: Failed to update https://subversion-server/repos/main-repo/trunk/referenced_projects
org.tmatesoft.svn.core.SVNException: svn: E160005: Target path '/main-repo/trunk/referenced_projects' does not exist
svn: E175002: REPORT of '/main-repo/!svn/vcc/default': 500 Internal Server Error
Case 2:
Main-Repository - Head-Rev: 201
Imported Repository - Head-Rev. 810
Someone commits rev 811 at the imported-Repo - Subversion tries to checkout Rev 811 from the Main-Repository!
Build is also broken with svn E160006: no such revision 811
---
Originally reported by coyote_de, imported from: SVN Plugin breaks builds when checking out with wrong Rev
Raw content of original issue
Our repositories make heavy use of Subversion Externals, and we use a "post commit hook" to trigger builds.
There are two ways to work with externals:
- With a fixed revision (@-Syntax: https://subversion-server/repopath@1234)
- With a floating revision (always up to date)
The subversion-plugin detects correctly that those projects contains data from multiple SVN-Paths and tiggers the build also when an "imported" Repo sends a post-commit-hook.
Here we observed the following problem:
The post commit hook informs Jenkins about the number of the new SVN-revision. But the Subversion-Plugin use that Revision-Number for EVERY "SVN Update"-Command regardless of whether the path matches the project-repository or not.
Case 1:
Main-Repository - Head-Rev: 1000
Imported Repository - Head-Rev. 154
Someone commits rev 155 at the imported-Repo - Subversion tries to checkout Rev 155 from the Main-Repository!
If the addressed Path in the main repository wasn't existing at rev 155 you get the following error msg:
ERROR: Failed to update https://subversion-server/repos/main-repo/trunk/referenced_projects
org.tmatesoft.svn.core.SVNException: svn: E160005: Target path '/main-repo/trunk/referenced_projects' does not exist
svn: E175002: REPORT of '/main-repo/!svn/vcc/default': 500 Internal Server Error
Case 2:
Main-Repository - Head-Rev: 201
Imported Repository - Head-Rev. 810
Someone commits rev 811 at the imported-Repo - Subversion tries to checkout Rev 811 from the Main-Repository!
Build is also broken with svn E160006: no such revision 811
environment
```
Windows Server 2008 R2 Master (1.609.3)
Windows7 Slave
SVN-Plugin 2.6
```
Contributor guide
Assessment
This issue has not been assessed yet.