jenkinsci / jenkinsci/subversion-plugin

[JENKINS-36561] SVN Plugin breaks builds when checking out with wrong Rev

Open
#1,375 0 comments 0 reactions 0 assignees View on GitHub
component:subversion-plugin imported-jira-issue priority:major resolution:unresolved
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:


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


  • status: Open
  • priority: Major
  • component(s): subversion-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 20251212-090250

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:


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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.