Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-22778

Changelog entries for SVN externals were broken in 2.0


      This commit broke changelog entries from external locations. Even with the proposed solution to JENKINS-22199 the paths remain broken (presumably except for the JENKINS-18574 use case).

      From the linked commit's discussion (see full discussion for context):

      But that's still not the actual problem! Since /trunk/baz/baz doesn't exist anywhere except for a local working copy, it will break all repo browsers even when implemented "correctly": .../repo2/trunk/baz/ simply does not exist as an actual path. And even if there is a repo browser that supports "virtual" paths for browsing, it won't be able to show the diff between two revisions of a completely different repository: Given the revisions in my test setup above, it's likely to result in links to something like http://svnbrowser/repo2/trunk/baz/baz?rev=4, when that revision doesn't even exist in that repo.

      I also tested the "exclude paths" option: While the changelog now shows the changed path baz/baz, I have to exclude the location /projectX/trunk/.* to ignore it. Which is obviously really confusing: how do you get from an accidentally polling-triggered build's change log to the correct location to exclude in the configuration? It's trivial in the old format, you just copy and paste from the change log.

      And while we're at it, changelog.xml lost the information about what kind of entity this is (tested with the master snapshot build):

      <path action="M" kind="unknown">baz/baz</path>

      as opposed to:

      <path action="M" kind="file">/projectX/trunk/baz</path>

      Solutions to JENKINS-18574 should not break the recording of changed paths and the repo browsers depending on those paths.

            kutzi kutzi
            danielbeck Daniel Beck
            0 Vote for this issue
            3 Start watching this issue