• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • branch-api-plugin
    • None
    • Jenkins 2.32.1, Bitbucket Branch Source Plugin 2.0.0

      Since the SCM 2.0 release, I can't find a way, in a pipeline, to get a human-readable job & branch name.

      For example, if I had a BitBucket team called 'Foo', a repository called 'Bar' and a branch 'feature/KEY-Baz', it used to be possible to get a nearly human readable branch - env.BRANCH_NAME would be 'Foo/Bar%2FKEY-Baz', which was easy enough to escape to a human readable form.

      Now, however, it's a shortened form, with numbers in it - something like 'Foo/Bar.qxyz123/feature-KEY.abcd12345ghij-Baz'. And there appears to be no way to get the human readable version. This has broken all of my build notification templates.

      Here's my 'build started' notification, for example:

      hipchatSend color: 'YELLOW', credentialId: 'HipChat', message: "<a href='${env.BUILD_URL}'>${env.JOB_NAME.replace('%2F', '/')} ${env.BUILD_NUMBER}</a> Started", notify: true, room: 'Build Server Messages', sendAs: 'Jenkins', server: '', v2enabled: false
      

          [JENKINS-41124] Can't get a human readable job name anymore

          I know the mangling of the paths is there to ensure uniqueness - but it's causing problems for me like crazy. An option to disable it would help a lot.

          Robert Watkins added a comment - I know the mangling of the paths is there to ensure uniqueness - but it's causing problems for me like crazy. An option to disable it would help a lot.

          env.BRANCH_NAME should now be the plain unmangled name

          Stephen Connolly added a comment - env.BRANCH_NAME should now be the plain unmangled name

          James Dumay added a comment -

          This should be BLOCKER. We can't go about breaking peoples URLs.

          James Dumay added a comment - This should be BLOCKER. We can't go about breaking peoples URLs.

          What about the job name? Is there a way to get an unmangled form of that?

          Robert Watkins added a comment - What about the job name? Is there a way to get an unmangled form of that?

          The S3BucketPublisher, BTW, uses run.getParent().getFullName(); to determine the prefix. If I can get an unmangled job name, I can do my own S3 uploads, but if I want to keep using this plugin, I need a way to make the parent's full name to be unmangled.

          Robert Watkins added a comment - The S3BucketPublisher, BTW, uses run.getParent().getFullName(); to determine the prefix. If I can get an unmangled job name, I can do my own S3 uploads, but if I want to keep using this plugin, I need a way to make the parent's full name to be unmangled.

          Ryan Campbell added a comment -

          The impact of this issue is that previously users expected to be able to construct the expected URL on their own, but now it is generated using a non-transparent algorithm.

          Mic says he's had 10 people in the last 24 hours mentioned that they are surprised by the new URL scheme.

          For example, here is a new URL:

          https://ci.blueocean.io/blue/organizations/jenkins/blueocean/detail/feature-J.hunjes6l7b7p.om-github/5/pipeline/

          Which is not love-able.

          There is also external tooling which depends on this structure.

          Ryan Campbell added a comment - The impact of this issue is that previously users expected to be able to construct the expected URL on their own, but now it is generated using a non-transparent algorithm. Mic says he's had 10 people in the last 24 hours mentioned that they are surprised by the new URL scheme. For example, here is a new URL: https://ci.blueocean.io/blue/organizations/jenkins/blueocean/detail/feature-J.hunjes6l7b7p.om-github/5/pipeline/ Which is not love-able. There is also external tooling which depends on this structure.

          the job display name should be the unmangled name (unless the user has customized, but you cannot customize display name for multibranch)

          We can expose the display name as an environment variable too

          The Job name cannot stay as is currently.

          % is not a valid character on some file systems.

          .. is a valid branch name on some source control systems.

          Even seemingly "safe" filenames like aux can cause issues for users.

          There is a very limited set of characters that are safe for filesystems: A-Za-z0-9_.- is all there is to play with

          Furthermore, the name length causes lots of issues. So we need to ensure that the branch name is not "too long"

          The only way out of that with minimal risk of collisions is a deterministic hashing algorithm... which becomes ugly... or part name part hash with some characters used to disambiguate to prevent the smaller hash from causing issues.

          The current algorithm was chosen to reduce the risk of collision to less than 1 in 33 million, which is about as low as we can go before things get ugly.

          If somebody else has a wonderful magical scheme for mapping names from the entire unicode space in a predictable pattern into the character set A-Za-z0-9_.- that also makes care to ensure silly branch names like .. are not given the name .. and dangerous branch names like AUX, CON, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, PRN, NULL or their lower case equivalents are mapped into something sensible, and doesn't have risk of collisions (e.g. when JENKINS-36240 gets merged and then we can potentially start building "trusted" fork branches such that the branch name is now controlled by the fork)... oh and can we not actually change the job name from the branch name... and can we keep the job names to something short... well I'm all ears... but I think you will find it an impossible and thankless task.

          What we need to do is expose the human readable bits correctly and ensure that plugins do correct things rather than blinding assuming things.

          We probably also need to apply name mangling in core to all jobs... but that is a different story.

          Blue Ocean could use getItemByBranch() to resolve branches if blue ocean wants to handle the case of branch names like .. other than that, jenkins core will still resolve the old urls

          Stephen Connolly added a comment - the job display name should be the unmangled name (unless the user has customized, but you cannot customize display name for multibranch) We can expose the display name as an environment variable too The Job name cannot stay as is currently. % is not a valid character on some file systems. .. is a valid branch name on some source control systems. Even seemingly "safe" filenames like aux can cause issues for users. There is a very limited set of characters that are safe for filesystems: A-Za-z0-9_.- is all there is to play with Furthermore, the name length causes lots of issues. So we need to ensure that the branch name is not "too long" The only way out of that with minimal risk of collisions is a deterministic hashing algorithm... which becomes ugly... or part name part hash with some characters used to disambiguate to prevent the smaller hash from causing issues. The current algorithm was chosen to reduce the risk of collision to less than 1 in 33 million, which is about as low as we can go before things get ugly. If somebody else has a wonderful magical scheme for mapping names from the entire unicode space in a predictable pattern into the character set A-Za-z0-9_.- that also makes care to ensure silly branch names like .. are not given the name .. and dangerous branch names like AUX, CON, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, PRN, NULL or their lower case equivalents are mapped into something sensible, and doesn't have risk of collisions (e.g. when JENKINS-36240 gets merged and then we can potentially start building "trusted" fork branches such that the branch name is now controlled by the fork)... oh and can we not actually change the job name from the branch name... and can we keep the job names to something short... well I'm all ears... but I think you will find it an impossible and thankless task. What we need to do is expose the human readable bits correctly and ensure that plugins do correct things rather than blinding assuming things. We probably also need to apply name mangling in core to all jobs... but that is a different story. Blue Ocean could use getItemByBranch() to resolve branches if blue ocean wants to handle the case of branch names like .. other than that, jenkins core will still resolve the old urls

          if people want we can increase the length of the hash but reduce the bits encoded by making those hashes "pronounceable"... but that limits the bit space that we have to play with. Base32 is what we use currently.

          Stephen Connolly added a comment - if people want we can increase the length of the hash but reduce the bits encoded by making those hashes "pronounceable"... but that limits the bit space that we have to play with. Base32 is what we use currently.

          Robert Watkins added a comment - - edited

          Is there a reason we can't have an option (disabled by default) to leave the job & branch name the way the user specified it? Because a lot of those problems aren't problems for a lot of users, a lot of the time, and can be worked around by selection of repository & branch name. Whilst mangling the job name can not be.

          I understand that in environments like CloudBees that this will be a problem - but in a standard self-hosted development environment, we would be extremely unlikely to encounter these issues.

          [Also, I believe you're unnecessarily conflating the Job name with the workspace name - the Job name isn't part of any filespace other than the web URL (and HTML escaping works fine for that)]

          I've rolled back now, so I can't easily check, but from my recollection the env.JOB_DISPLAY_NAME didn't have the unmangled version - I did a dump of all of the environment properties, and not one was unmangled except for the BRANCH_NAME property. It's possible that the JOB_DISPLAY_NAME wasn't set yet, as I did the dump at the start of the job; I'll double-check that tonight.

          Robert Watkins added a comment - - edited Is there a reason we can't have an option (disabled by default) to leave the job & branch name the way the user specified it? Because a lot of those problems aren't problems for a lot of users, a lot of the time, and can be worked around by selection of repository & branch name. Whilst mangling the job name can not be. I understand that in environments like CloudBees that this will be a problem - but in a standard self-hosted development environment, we would be extremely unlikely to encounter these issues. [Also, I believe you're unnecessarily conflating the Job name with the workspace name - the Job name isn't part of any filespace other than the web URL (and HTML escaping works fine for that)] I've rolled back now, so I can't easily check, but from my recollection the env.JOB_DISPLAY_NAME didn't have the unmangled version - I did a dump of all of the environment properties, and not one was unmangled except for the BRANCH_NAME property. It's possible that the JOB_DISPLAY_NAME wasn't set yet, as I did the dump at the start of the job; I'll double-check that tonight.

          Michael Neale added a comment -

          twasink it looks like this is going to be temporarily moved out of the main update center until this (and one other issue) are addressed and tested. For now it seems you are in an ok place after you restored?

          Michael Neale added a comment - twasink it looks like this is going to be temporarily moved out of the main update center until this (and one other issue) are addressed and tested. For now it seems you are in an ok place after you restored?

          Check your JENKINS HOME:

          JENKINS_HOME/jobs/${orgFolderName}/jobs/${mangledMultibranchProjectName}/branches/${mangledBranchName}

          It's not the workspace name as that is already mangled (with an unnecessarily long hash that causes issues for windows builds but that is a different story)

          In the above path the only user controlled names is orgFolderName

          The other two names come from the SCMNaviagtor and the SCMSource respectively and we have no control over what names they give us back.

          We already saw one issue with names containing Korean and Chinese characters on unix filesystems

          Stephen Connolly added a comment - Check your JENKINS HOME: JENKINS_HOME/jobs/${orgFolderName}/jobs/${mangledMultibranchProjectName}/branches/${mangledBranchName } It's not the workspace name as that is already mangled (with an unnecessarily long hash that causes issues for windows builds but that is a different story) In the above path the only user controlled names is orgFolderName The other two names come from the SCMNaviagtor and the SCMSource respectively and we have no control over what names they give us back. We already saw one issue with names containing Korean and Chinese characters on unix filesystems

          michaelneale Yes, after restoring from the backup (which I took as advised in the upgrade notes), I'm working fine again.

          Robert Watkins added a comment - michaelneale Yes, after restoring from the backup (which I took as advised in the upgrade notes), I'm working fine again.

          It still sounds like what you need is to escape/transform/mangle the job name only when it comes to writing to the filesystem, though. Yes, transforming the job name is probably the easiest way to do that without changing the existing plugins, but it has serious knock-on impacts.

          You seem to have a choice:

          • (optionally) transform the job name, then fix every plugin that really needs access to the untransformed job name, or
          • keep the job name as specified by the user, and only mangle it when needing to build a filesystem path.

          Robert Watkins added a comment - It still sounds like what you need is to escape/transform/mangle the job name only when it comes to writing to the filesystem, though. Yes, transforming the job name is probably the easiest way to do that without changing the existing plugins, but it has serious knock-on impacts. You seem to have a choice: (optionally) transform the job name, then fix every plugin that really needs access to the untransformed job name, or keep the job name as specified by the user, and only mangle it when needing to build a filesystem path.

          Michael Neale added a comment -

          twasink it does need some mangling on the URI - so that a path like:

          foo/bar/baz/boo

          isn't ambiguous if the branch name is "foo/bar" (hence it used to have the simple escape)

          Michael Neale added a comment - twasink it does need some mangling on the URI - so that a path like: foo/bar/baz/boo isn't ambiguous if the branch name is "foo/bar" (hence it used to have the simple escape)

          You may (heck, probably do) need that if you're hosting a Jenkins server for use by others. You don't need that if you're hosting it for yourself - your chances of conflict are infinitesimal, and you can solve them if you get them. So putting up with a lot of hassle to work around this problem isn't worth it for most installations. (Though the simple escaping of the branch name was tolerable enough)

          Robert Watkins added a comment - You may (heck, probably do) need that if you're hosting a Jenkins server for use by others. You don't need that if you're hosting it for yourself - your chances of conflict are infinitesimal, and you can solve them if you get them. So putting up with a lot of hassle to work around this problem isn't worth it for most installations. (Though the simple escaping of the branch name was tolerable enough)

          Michael Neale added a comment -

          twasink not due to naming collisions but for routing. In any case I think a better scheme will result that fits the "human readable" requirement.

          Michael Neale added a comment - twasink not due to naming collisions but for routing. In any case I think a better scheme will result that fits the "human readable" requirement.

          I think I have found a way...

          By changing cloudbees folders plugin we can have the on-disk file name != the url path segment name.

          That way we can keep the on-disk filename using the current 2.0.x mangled names, but keep the urls using (mostly) the 1.x names...

          I say (mostly) because we have to guard against a small subset of problematic names. Specifically:

          "", "." and ".."

          or any name that contains "/" / "?" / "#" / "["}} / {{"]"}} (plus for good measure because browsers try to be helpful, we will probably also have to guard against names containing "\"

          All those names need to be "double" encoded. I'm hoping to use % encoding because that should retain the names mostly compatible with before

          So a branch name like característica/nuevo 1 (~ spanish for "feature/new 1") will be given a "Job name" of característica%2Fnuevo 1 then all the nice friendly url encoding code will convert that name into the path segment caracter%C3%ADstica%252Fnuevo%201 which the browsers may "helpfully" display in the URL bar as característica%2Fnuevo 1 or característica%252Fnuevo%201 depending on how they feel

          Need to write tests and then do some manual testing

          Stephen Connolly added a comment - I think I have found a way... By changing cloudbees folders plugin we can have the on-disk file name != the url path segment name. That way we can keep the on-disk filename using the current 2.0.x mangled names, but keep the urls using (mostly) the 1.x names... I say (mostly) because we have to guard against a small subset of problematic names. Specifically: "" , "." and ".." or any name that contains "/" / "?" / "#" / " ["}} / {{"] " }} (plus for good measure because browsers try to be helpful, we will probably also have to guard against names containing "\" All those names need to be "double" encoded. I'm hoping to use % encoding because that should retain the names mostly compatible with before So a branch name like característica/nuevo 1 (~ spanish for "feature/new 1") will be given a "Job name" of característica%2Fnuevo 1 then all the nice friendly url encoding code will convert that name into the path segment caracter%C3%ADstica%252Fnuevo%201 which the browsers may "helpfully" display in the URL bar as característica%2Fnuevo 1 or característica%252Fnuevo%201 depending on how they feel Need to write tests and then do some manual testing

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          src/main/java/com/cloudbees/hudson/plugins/folder/relocate/RelocationAction.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/7a55e52e90a14fc80a9941f725eb50e3ab879bfa
          Log:
          JENKINS-41124 Provide a mechanism for a computed folder to mangle directory names

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java src/main/java/com/cloudbees/hudson/plugins/folder/relocate/RelocationAction.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/7a55e52e90a14fc80a9941f725eb50e3ab879bfa Log: JENKINS-41124 Provide a mechanism for a computed folder to mangle directory names

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/computed/FolderComputation.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/9d6e1198966b2f5e01fd39487678e015dbe0c083
          Log:
          JENKINS-41124 Found a side-effect where the constructor would have side-effects on-disk

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/computed/FolderComputation.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/9d6e1198966b2f5e01fd39487678e015dbe0c083 Log: JENKINS-41124 Found a side-effect where the constructor would have side-effects on-disk

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/442d254e443adcbb969477010e02e4eb0a4bbbe6
          Log:
          JENKINS-41124 Every implementation will need to protect in case of bad impls anyway

          Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/7a55e52e90a1^...442d254e443a

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/442d254e443adcbb969477010e02e4eb0a4bbbe6 Log: JENKINS-41124 Every implementation will need to protect in case of bad impls anyway Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/7a55e52e90a1 ^...442d254e443a

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/71c15f052e9981263df407457263b624fe451b66
          Log:
          JENKINS-41124 Fix javadoc errors

          Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/7a55e52e90a1^...71c15f052e99

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/71c15f052e9981263df407457263b624fe451b66 Log: JENKINS-41124 Fix javadoc errors Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/7a55e52e90a1 ^...71c15f052e99

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/1d90bf76a58056792c37ee96948dbdc6904a3964
          Log:
          JENKINS-41124 Actually the super method needs to be first

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/1d90bf76a58056792c37ee96948dbdc6904a3964 Log: JENKINS-41124 Actually the super method needs to be first

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/Folder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/9f4be16479e6b6e97e219531d3e7103a0ff096e1
          Log:
          JENKINS-41124 When using a ChildNameGenerator, record the name for new items too

          Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/71c15f052e99...9f4be16479e6

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/Folder.java src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/9f4be16479e6b6e97e219531d3e7103a0ff096e1 Log: JENKINS-41124 When using a ChildNameGenerator, record the name for new items too Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/71c15f052e99...9f4be16479e6

          Michael Neale added a comment -

          I tried a recent snapshot of this change and it looked good. Even "exotic" branch names worked as expected by the acceptance test.

          Michael Neale added a comment - I tried a recent snapshot of this change and it looked good. Even "exotic" branch names worked as expected by the acceptance test.

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest/upgrade.zip
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest/upgrade.zip
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgrade.zip
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/be909fdb4b7b07d3f9f3520e6e34601ad95ffeed
          Log:
          JENKINS-41124 Adding tests

          • Also tests found a few very small holes, which are now fixed!

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest/upgrade.zip src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest/upgrade.zip src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgrade.zip http://jenkins-ci.org/commit/cloudbees-folder-plugin/be909fdb4b7b07d3f9f3520e6e34601ad95ffeed Log: JENKINS-41124 Adding tests Also tests found a few very small holes, which are now fixed!

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/089eac109eddd62f62afd1cd53f5c8e854cebdee
          Log:
          JENKINS-41124 Noting JENKINS-41222 related future simplifications

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/089eac109eddd62f62afd1cd53f5c8e854cebdee Log: JENKINS-41124 Noting JENKINS-41222 related future simplifications

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/c9730b16046b09d57e3e41902a37379f371b3757
          Log:
          JENKINS-41124 Fix the one failing test (I hope)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/c9730b16046b09d57e3e41902a37379f371b3757 Log: JENKINS-41124 Fix the one failing test (I hope)

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/b9e2fa9e1d8adbd6ccfbd2cb77152704600aa5ae
          Log:
          JENKINS-41124 Ok, we just have to detect the filesystem normalization rules

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/b9e2fa9e1d8adbd6ccfbd2cb77152704600aa5ae Log: JENKINS-41124 Ok, we just have to detect the filesystem normalization rules

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/8167384eb03dca5c8e25780319762502df8c7b70
          Log:
          JENKINS-41124 Forgot to create the probe file!

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/8167384eb03dca5c8e25780319762502df8c7b70 Log: JENKINS-41124 Forgot to create the probe file!

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgrade.zip
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/1161c7cb95281d1fe90f379a25c84fdf3a4a680e
          Log:
          JENKINS-41124 Hopefully this makes the test FS portable

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgrade.zip http://jenkins-ci.org/commit/cloudbees-folder-plugin/1161c7cb95281d1fe90f379a25c84fdf3a4a680e Log: JENKINS-41124 Hopefully this makes the test FS portable

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/93e075a54da18f01b3c1336304eb1ddeea5e8768
          Log:
          JENKINS-41124 Remove normalization left in by mistake when trying to make the test deterministic on all File systems

          • Unnecessary now that we detect the normalization scheme of the system under test

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/93e075a54da18f01b3c1336304eb1ddeea5e8768 Log: JENKINS-41124 Remove normalization left in by mistake when trying to make the test deterministic on all File systems Unnecessary now that we detect the normalization scheme of the system under test

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/b2e6e88f51cf1bead3b57492b933a3c88c06a818
          Log:
          JENKINS-41124 Additional tracking of legacy name

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/b2e6e88f51cf1bead3b57492b933a3c88c06a818 Log: JENKINS-41124 Additional tracking of legacy name

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgradeNFD.zip
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/ea7eb5d05fb9ad76775f42474be367492a5297dd
          Log:
          JENKINS-41124 Confirmed OS-X normalizes to NFC and Linux to NFD

          So here is a second test set using NFD names so that if we end up on a magical filesystem that doesn't mess with the name encoding we will cover both variants.

          With respect to the issue driving all of this:

          • MultiBranch projects already store the name of the branch in unmolested form within the Branch object, so we only need to worry about OrganizationFolder's children.
          • There are only two current OrganizationFolder navigators:
          • GitHub which helpfully replaces any non-url safe characters with `-`, so will not be an issue
          • BitBucket which also replaces any non-url safe characters with `-` (but without a tooltip giving advance notice), so will also not be an issue.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgradeNFD.zip http://jenkins-ci.org/commit/cloudbees-folder-plugin/ea7eb5d05fb9ad76775f42474be367492a5297dd Log: JENKINS-41124 Confirmed OS-X normalizes to NFC and Linux to NFD So here is a second test set using NFD names so that if we end up on a magical filesystem that doesn't mess with the name encoding we will cover both variants. With respect to the issue driving all of this: MultiBranch projects already store the name of the branch in unmolested form within the Branch object, so we only need to worry about OrganizationFolder's children. There are only two current OrganizationFolder navigators: GitHub which helpfully replaces any non-url safe characters with `-`, so will not be an issue BitBucket which also replaces any non-url safe characters with `-` (but without a tooltip giving advance notice), so will also not be an issue.

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/e151a7bb9627f12b61b6e71ca574de5474b52f16
          Log:
          JENKINS-41124 Address code review comments

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/e151a7bb9627f12b61b6e71ca574de5474b52f16 Log: JENKINS-41124 Address code review comments

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/b633614b05d7b2a90b40342d5331da1db6deb5de
          Log:
          JENKINS-41124 Fix typos in Javadocs

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java http://jenkins-ci.org/commit/cloudbees-folder-plugin/b633614b05d7b2a90b40342d5331da1db6deb5de Log: JENKINS-41124 Fix typos in Javadocs

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java
          src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java
          src/main/java/com/cloudbees/hudson/plugins/folder/Folder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java
          src/main/java/com/cloudbees/hudson/plugins/folder/computed/FolderComputation.java
          src/main/java/com/cloudbees/hudson/plugins/folder/relocate/RelocationAction.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest.java
          src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest/upgrade.zip
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest/upgrade.zip
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgrade.zip
          src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgradeNFD.zip
          http://jenkins-ci.org/commit/cloudbees-folder-plugin/c6097da511c6382d083abf99fad1cb3ed11bb29b
          Log:
          Merge pull request #82 from stephenc/jenkins-41124

          JENKINS-41124 Provide a mechanism for a computed folder to mangle directory names

          Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/152375c01d78...c6097da511c6

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolderDescriptor.java src/main/java/com/cloudbees/hudson/plugins/folder/ChildNameGenerator.java src/main/java/com/cloudbees/hudson/plugins/folder/Folder.java src/main/java/com/cloudbees/hudson/plugins/folder/computed/ComputedFolder.java src/main/java/com/cloudbees/hudson/plugins/folder/computed/FolderComputation.java src/main/java/com/cloudbees/hudson/plugins/folder/relocate/RelocationAction.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest.java src/test/java/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest.java src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorAltTest/upgrade.zip src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorRecTest/upgrade.zip src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgrade.zip src/test/resources/com/cloudbees/hudson/plugins/folder/ChildNameGeneratorTest/upgradeNFD.zip http://jenkins-ci.org/commit/cloudbees-folder-plugin/c6097da511c6382d083abf99fad1cb3ed11bb29b Log: Merge pull request #82 from stephenc/jenkins-41124 JENKINS-41124 Provide a mechanism for a computed folder to mangle directory names Compare: https://github.com/jenkinsci/cloudbees-folder-plugin/compare/152375c01d78...c6097da511c6

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/main/java/jenkins/branch/Branch.java
          src/main/java/jenkins/branch/MultiBranchProject.java
          src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java
          src/main/java/jenkins/branch/NameEncoder.java
          src/main/java/jenkins/branch/OrganizationFolder.java
          src/test/java/integration/BrandingTest.java
          src/test/java/integration/EventsTest.java
          src/test/java/integration/MigrationTest.java
          src/test/java/jenkins/branch/WorkspaceLocatorImplTest.java
          http://jenkins-ci.org/commit/branch-api-plugin/1d254fad966168ad5dfff97c829fda458c917968
          Log:
          JENKINS-41124 Move name mangling support responsibility to AbstractFolder

          • Needs more tests... like way more...
          • [ ] Need a test that verifies after migration and then a restart that all is still as expected.
          • [ ] Need a test that verifies after a migration and then a reload that all is still as expected.
          • [ ] Need a test that verifies after a migration and thene a restart and then a reload that all is still as expected.
          • [ ] Need a set of all those migration tests using the migration from a 2.0.0 pristine set of items
          • [ ] Need a set of all those migration tests using the migration from a 1.x set of items that was migrated to 2.0.0 and then lands on this set

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/main/java/jenkins/branch/Branch.java src/main/java/jenkins/branch/MultiBranchProject.java src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java src/main/java/jenkins/branch/NameEncoder.java src/main/java/jenkins/branch/OrganizationFolder.java src/test/java/integration/BrandingTest.java src/test/java/integration/EventsTest.java src/test/java/integration/MigrationTest.java src/test/java/jenkins/branch/WorkspaceLocatorImplTest.java http://jenkins-ci.org/commit/branch-api-plugin/1d254fad966168ad5dfff97c829fda458c917968 Log: JENKINS-41124 Move name mangling support responsibility to AbstractFolder Needs more tests... like way more... [ ] Need a test that verifies after migration and then a restart that all is still as expected. [ ] Need a test that verifies after a migration and then a reload that all is still as expected. [ ] Need a test that verifies after a migration and thene a restart and then a reload that all is still as expected. [ ] Need a set of all those migration tests using the migration from a 2.0.0 pristine set of items [ ] Need a set of all those migration tests using the migration from a 1.x set of items that was migrated to 2.0.0 and then lands on this set

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/MultiBranchProjectFactory.java
          src/main/java/jenkins/branch/NameEncoder.java
          src/test/java/integration/harness/BasicMultiBranchProjectFactory.java
          http://jenkins-ci.org/commit/branch-api-plugin/15561c5e7406c49d3b269f34a0426b146e757fef
          Log:
          JENKINS-41124 Forgot to escape the escape character itself (and forgot some files too)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/MultiBranchProjectFactory.java src/main/java/jenkins/branch/NameEncoder.java src/test/java/integration/harness/BasicMultiBranchProjectFactory.java http://jenkins-ci.org/commit/branch-api-plugin/15561c5e7406c49d3b269f34a0426b146e757fef Log: JENKINS-41124 Forgot to escape the escape character itself (and forgot some files too)

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/MultiBranchProject.java
          src/main/java/jenkins/branch/OrganizationFolder.java
          http://jenkins-ci.org/commit/branch-api-plugin/89d7adebc0ed51784584cb6932487d48b439a9ca
          Log:
          JENKINS-41124 Forgot to return the match when we find it first time

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/MultiBranchProject.java src/main/java/jenkins/branch/OrganizationFolder.java http://jenkins-ci.org/commit/branch-api-plugin/89d7adebc0ed51784584cb6932487d48b439a9ca Log: JENKINS-41124 Forgot to return the match when we find it first time

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/OrganizationFolder.java
          http://jenkins-ci.org/commit/branch-api-plugin/76db05c5c323c3597a14e2ce36fe0ea198110dac
          Log:
          JENKINS-41124 Findbugs catches a bug

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/OrganizationFolder.java http://jenkins-ci.org/commit/branch-api-plugin/76db05c5c323c3597a14e2ce36fe0ea198110dac Log: JENKINS-41124 Findbugs catches a bug

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/MultiBranchProject.java
          src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java
          src/main/java/jenkins/branch/OrganizationFolder.java
          http://jenkins-ci.org/commit/branch-api-plugin/e59d1474cd8751668e9fd84edc85df4933801efe
          Log:
          JENKINS-41124 So it seems there are some bold side-effects going on in item constructors and we need to ensure those side effects take place in the correct directory

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/MultiBranchProject.java src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java src/main/java/jenkins/branch/OrganizationFolder.java http://jenkins-ci.org/commit/branch-api-plugin/e59d1474cd8751668e9fd84edc85df4933801efe Log: JENKINS-41124 So it seems there are some bold side-effects going on in item constructors and we need to ensure those side effects take place in the correct directory

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/main/java/jenkins/branch/MultiBranchProject.java
          src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java
          src/main/java/jenkins/branch/OrganizationFolder.java
          http://jenkins-ci.org/commit/branch-api-plugin/61e5af591751bfd81f25f4fb1fa30d9f9ad2e90d
          Log:
          JENKINS-41124 Pick up API changes in cloudbees-folder

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/main/java/jenkins/branch/MultiBranchProject.java src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java src/main/java/jenkins/branch/OrganizationFolder.java http://jenkins-ci.org/commit/branch-api-plugin/61e5af591751bfd81f25f4fb1fa30d9f9ad2e90d Log: JENKINS-41124 Pick up API changes in cloudbees-folder

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/test/java/integration/MigrationTest.java
          src/test/resources/integration/MigrationTest/nameMangling_2.zip
          src/test/resources/integration/MigrationTest/nameMangling_2_folder_reload.zip
          src/test/resources/integration/MigrationTest/nameMangling_2_full_reload.zip
          src/test/resources/integration/MigrationTest/nameMangling_folder_reload.zip
          src/test/resources/integration/MigrationTest/nameMangling_full_reload.zip
          http://jenkins-ci.org/commit/branch-api-plugin/ec6ef005c4b525665163d39336483d240800e869
          Log:
          JENKINS-41124 Lots of data migration tests

          Need the restart tests also, but this at least calms my fears

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/test/java/integration/MigrationTest.java src/test/resources/integration/MigrationTest/nameMangling_2.zip src/test/resources/integration/MigrationTest/nameMangling_2_folder_reload.zip src/test/resources/integration/MigrationTest/nameMangling_2_full_reload.zip src/test/resources/integration/MigrationTest/nameMangling_folder_reload.zip src/test/resources/integration/MigrationTest/nameMangling_full_reload.zip http://jenkins-ci.org/commit/branch-api-plugin/ec6ef005c4b525665163d39336483d240800e869 Log: JENKINS-41124 Lots of data migration tests Need the restart tests also, but this at least calms my fears

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/integration/MigrationTest.java
          http://jenkins-ci.org/commit/branch-api-plugin/663cb3d060dbfb6aa38128a5805ff912ee65abfb
          Log:
          JENKINS-41124 Switch migration test to restartable jenkins rule

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/integration/MigrationTest.java http://jenkins-ci.org/commit/branch-api-plugin/663cb3d060dbfb6aa38128a5805ff912ee65abfb Log: JENKINS-41124 Switch migration test to restartable jenkins rule

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/integration/MigrationTest.java
          http://jenkins-ci.org/commit/branch-api-plugin/60e82a905a990270394983eef61f9e2f06857c5c
          Log:
          JENKINS-41124 Add re-verification to all the migration tests after Jenkins restart

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/integration/MigrationTest.java http://jenkins-ci.org/commit/branch-api-plugin/60e82a905a990270394983eef61f9e2f06857c5c Log: JENKINS-41124 Add re-verification to all the migration tests after Jenkins restart

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/main/java/jenkins/branch/MultiBranchProject.java
          src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java
          src/main/java/jenkins/branch/OrganizationFolder.java
          http://jenkins-ci.org/commit/branch-api-plugin/ba727fac801d6d47743277928447ca3c347a1185
          Log:
          JENKINS-41124 Integrates the fixed from cloudbees-folder

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/main/java/jenkins/branch/MultiBranchProject.java src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java src/main/java/jenkins/branch/OrganizationFolder.java http://jenkins-ci.org/commit/branch-api-plugin/ba727fac801d6d47743277928447ca3c347a1185 Log: JENKINS-41124 Integrates the fixed from cloudbees-folder

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/MultiBranchProjectFactory.java
          src/main/java/jenkins/branch/NameEncoder.java
          src/test/java/integration/BrandingTest.java
          src/test/java/integration/MigrationTest.java
          src/test/java/jenkins/branch/WorkspaceLocatorImplTest.java
          http://jenkins-ci.org/commit/branch-api-plugin/32c5aba1102a2a8928a1decc17c1170bec0e2845
          Log:
          JENKINS-41124 Address code review comments

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/MultiBranchProjectFactory.java src/main/java/jenkins/branch/NameEncoder.java src/test/java/integration/BrandingTest.java src/test/java/integration/MigrationTest.java src/test/java/jenkins/branch/WorkspaceLocatorImplTest.java http://jenkins-ci.org/commit/branch-api-plugin/32c5aba1102a2a8928a1decc17c1170bec0e2845 Log: JENKINS-41124 Address code review comments

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/jenkins/branch/MultiBranchProjectFactory.java
          http://jenkins-ci.org/commit/branch-api-plugin/091997f77adfa37704f83584f153776a2a239cd7
          Log:
          JENKINS-41124 Typo in javadoc

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/jenkins/branch/MultiBranchProjectFactory.java http://jenkins-ci.org/commit/branch-api-plugin/091997f77adfa37704f83584f153776a2a239cd7 Log: JENKINS-41124 Typo in javadoc

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/main/java/jenkins/branch/Branch.java
          src/main/java/jenkins/branch/MultiBranchProject.java
          src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java
          src/main/java/jenkins/branch/MultiBranchProjectFactory.java
          src/main/java/jenkins/branch/NameEncoder.java
          src/main/java/jenkins/branch/OrganizationFolder.java
          src/test/java/integration/EventsTest.java
          src/test/java/integration/MigrationTest.java
          src/test/java/integration/harness/BasicMultiBranchProjectFactory.java
          src/test/java/jenkins/branch/WorkspaceLocatorImplTest.java
          src/test/resources/integration/MigrationTest/nameMangling_2.zip
          src/test/resources/integration/MigrationTest/nameMangling_2_folder_reload.zip
          src/test/resources/integration/MigrationTest/nameMangling_2_full_reload.zip
          src/test/resources/integration/MigrationTest/nameMangling_folder_reload.zip
          src/test/resources/integration/MigrationTest/nameMangling_full_reload.zip
          http://jenkins-ci.org/commit/branch-api-plugin/05030c1c0a5a0811c562785d209698c22aee5a86
          Log:
          Merge pull request #72 from stephenc/jenkins-41124

          JENKINS-41124 Move name mangling support responsibility to AbstractFolder

          Compare: https://github.com/jenkinsci/branch-api-plugin/compare/228cd1a7209e...05030c1c0a5a

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/main/java/jenkins/branch/Branch.java src/main/java/jenkins/branch/MultiBranchProject.java src/main/java/jenkins/branch/MultiBranchProjectDescriptor.java src/main/java/jenkins/branch/MultiBranchProjectFactory.java src/main/java/jenkins/branch/NameEncoder.java src/main/java/jenkins/branch/OrganizationFolder.java src/test/java/integration/EventsTest.java src/test/java/integration/MigrationTest.java src/test/java/integration/harness/BasicMultiBranchProjectFactory.java src/test/java/jenkins/branch/WorkspaceLocatorImplTest.java src/test/resources/integration/MigrationTest/nameMangling_2.zip src/test/resources/integration/MigrationTest/nameMangling_2_folder_reload.zip src/test/resources/integration/MigrationTest/nameMangling_2_full_reload.zip src/test/resources/integration/MigrationTest/nameMangling_folder_reload.zip src/test/resources/integration/MigrationTest/nameMangling_full_reload.zip http://jenkins-ci.org/commit/branch-api-plugin/05030c1c0a5a0811c562785d209698c22aee5a86 Log: Merge pull request #72 from stephenc/jenkins-41124 JENKINS-41124 Move name mangling support responsibility to AbstractFolder Compare: https://github.com/jenkinsci/branch-api-plugin/compare/228cd1a7209e...05030c1c0a5a

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/main/java/jenkins/branch/MultiBranchProject.java
          http://jenkins-ci.org/commit/branch-api-plugin/93e7fa149036ef63842924b5a3514209747efdc7
          Log:
          JENKINS-41124 Post-merge tidy up and pick up cloudbees-folder 5.17-beta-1

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/main/java/jenkins/branch/MultiBranchProject.java http://jenkins-ci.org/commit/branch-api-plugin/93e7fa149036ef63842924b5a3514209747efdc7 Log: JENKINS-41124 Post-merge tidy up and pick up cloudbees-folder 5.17-beta-1

          scm-api-2.0.2
          git-2.6.4 or git-3.0.4
          branch-api-2.0.2
          bitbucket-branch-source-2.0.2
          github-branch-source-2.0.1
          cloudbees-folder-5.17
          workflow-multibranch-2.11

          Stephen Connolly added a comment - scm-api-2.0.2 git-2.6.4 or git-3.0.4 branch-api-2.0.2 bitbucket-branch-source-2.0.2 github-branch-source-2.0.1 cloudbees-folder-5.17 workflow-multibranch-2.11

            stephenconnolly Stephen Connolly
            twasink Robert Watkins
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: