I did some more research and have concluded that changing svnInfo.url to introduce a slash when present would be very difficult (even though it would be more correct since including a trailing slash in a URL is perfectly valid syntax).
The problem is that the SVNInfo object is constructed with a File object. I ran a test and confirmed that none of the string getters from java.io.File will return a path with a trailing slash even if the trailing slash is provided in the File constructor. Thus, the SVNInfo object has no way of knowing if a user provided the trailing slash in a path or not.
This means that the only feasible way to fix this is either to:
- Change ModuleLocation.getURL() so that it won't return a trailing slash (which could have unforseen impacts to other code which might depend on the trailing slash). OR...
- Change UpdateUpdater.isUpdatable so that when getURL is called, a trailing slash is removed if it exists, in order to normalize url and svnInfo.url.
By the way, for those looking for a workaround, remove the trailing slash from the URL in your job. This has the effect of removing it from url so that it will match svnInfo.url. My earlier example would look like:
https://<some IP address>/svn/REPO/directory/branches/some_branch@HEAD
Of course, all of this may not be the only reason that url and svnInfo.url wouldn't match, but it is definitely one reason.