Please consider this the explanation to go with the +1 vote for having a way to disable individual branches of multi-branch pipelines via UI. Thanks!
"Normal" Use Cases:
We currently use multi branch pipelines for nearly all of our jobs. A particular type of "maintenance" job has its individual branches to run perform maintenance for different project releases (e.g. dev vs master vs staging/platform/release-num vs release/platform/release-num). Occasionally, it would be really convenient to disable a particular branch of this maintenance job b/c QA has determined there is a release blocking issue (rather than edit/delete Jenkinsfiles or libraries). Similarly, if we want to temporarily disable a report that we generate via a multi branch pipeline for a particular branch, it also would be useful.
"Rare" Use/Abuse Case:
We have encountered another use case, but expect it is very uncommon: In this particular multi branch pipeline, we have a dummy repo where we create branches that correspond to project names (e.g. name of a repo), and perform a common set of operations on these repos for other teams we support. We had received a request to temporarily disable these operations for a repo. Our solution was to delete the branch and recreate it later, but it would have been very convenient to just disable/re-enable the branch via UI. We are fully aware that this is abusing the multi branch pipeline system, but are unsure how common such a thing is. It has been extremely useful for us.
I think there are valid use cases for this in multi-branch projects. There are a number of ways to disable triggering in the source code (overrideIndexTriggers, disable polling, etc), but this doesn't advertise any intent in the UI that the job should be disabled. In cases where I have shared pipeline templates, this affects ALL consuming jobs. I may just want to disable a handful of jobs.
I'd really like to see this issue reopened, even if it is low priority for the maintainers.