|
Project
|
SVNKit
|
|
Priority
|
Normal |
|
Type
|
Bug |
|
State
|
Submitted |
|
Assignee
|
Dmitry Pavlenko |
|
Subsystem
|
Unknown subsystem |
|
Affected versions
|
1.7.6 |
|
Fix versions
|
No Fix versions |
|
Fixed in build
|
No Fixed in build
|
REPORT /scm/svn/issue-280/!svn/bc/5/branches/stable HTTP/1.1. <S:mergeinfo-report xmlns:S="svn:"> <S:revision>5</S:revision> <S:inherit>inherited</S:inherit> <S:path></S:path> </S:mergeinfo-report>
<S:mergeinfo-report xmlns:D="DAV:" xmlns:S="svn:">
<S:mergeinfo-item>
<S:mergeinfo-path>/branches/stable</S:mergeinfo-path>
<S:mergeinfo-info>/trunk:3-4</S:mergeinfo-info>
</S:mergeinfo-item>
</S:mergeinfo-report>
<S:mergeinfo-report xmlns:D="DAV:" xmlns:S="svn:">
<S:mergeinfo-item>
<S:mergeinfo-path></S:mergeinfo-path>
<S:mergeinfo-info>/trunk:3-4</S:mergeinfo-info>
</S:mergeinfo-item>
</S:mergeinfo-report>
for (int i = 0; i < getMergeInfoRequest().getTargetPaths().length; i++) { String currentPath = getMergeInfoRequest().getTargetPaths()[i]; DAVPathUtil.testCanonical(currentPath); if (currentPath.length() == 0 || currentPath.charAt(0) != '/') { getMergeInfoRequest().getTargetPaths()[i] = SVNPathUtil.append(getDAVResource().getResourceURI().getPath(), currentPath); } }should be just removed instead. In mod_dav_svn there's no such logic.
The cycle was introduced at r3483 and added to 2 handlers: DAVMergeInfoHandler and DAVLogHandler. I suspect that the change of the revision has been done mostly to make DAVLogHandler return absolute paths (as it should always return absolute paths), and DAVMergeInfoHandler was "fixed" just because it's a handler too.
I'll talk to r3483's author and, if he agrees, will remove this cycle.
Anyway thanks for the patch!
I think svnkit-dav has to use the request uri, if the path element of the request is empty and that is what the cycle above does.