When I create a pipeline job with the following Jenkinsfile (not from SCM):
I expect that it won't be triggered when I push something to https://github.com/amezin/jenkins-cant-stop-polling
However, it becomes triggered by SCM change. Polling log ends with "Changes found".
Real use case is more complex and involves a custom SCM plugin, but this simple pipeline with git step behaves the same way.
As a workaround, I'll add 'poll' option to our custom SCM plugin (and make its compareRemoteRevisionWith() return NO_CHANGES when set to false). I do not know any workaround for Git and Mercurial plugins (I'd prefer not to build a custom patched version of these).