markewaite- I was finally able to reproduce this issue 100% if you have access to bitbucket.
1. Have Bitbucket repository with at least 10 branches
2. Create a freestyle job and configure it to use the git plugin but connect to a Bitbucket repository at `$BITBUCKET_URL/git/$PROJECT/$REPO.git`
3. Add a parameter called BRANCH and has the default value of **
4. Use that parameter in the `Branches to build` section
5. Add a poll for changes of `* * * * *` so that it will build every minute
6. Add a shell step of something like "echo hello"
7. Run one build
This will then launch a new build for every branch and then once that is done you will see it build every minute seeing changes.
Let me know if that does not work for you because it has worked 2x for me so far.
So, I'm updating the Jenkins config like this:
http://imgur.com/0H945kK
The polling log before the change (extracted from a build, so ends with "changes found", but doesn't have to):
http://pastebin.com/3Mv3HUQd
The polling log after the change:
http://pastebin.com/igztfdwu
...and then it starts to rebuild the same branch 495 it has just built before (not 1205).
So, apparently, the behavior is very different depending on whether you specify BranchSpec directly as "*" or via a variable that should have the value of "*"