With unspecified branch, I am taking the definitions from the comments in the git plugin. Normally that would mean a branch specification of e.g. 'mybranch' or something equally simple. What we have been introducing lately is to use a 'specification' to the branches, so instead we now name them 'dev/myBranch'. That allows us to specify different permissions regarding force pushes which we don't want to allow on 'master'.
And yes, i am talking about force pushing which we use in our development branches only.
What I noticed this morning was that when the git plugin did the investigation for parents, 2 different refspeces were queried:
rev-parse dev/myBranch^ (which returned the sha of the previous parent, before the force push)
rev-parse refs/remotes/origin/dev/myBranch^ (which returned another sha, after the force push)
This triggered the additional build, which gave the same result, etc
I don't understand your description. Can you provide step by step instructions which will show the problem you're seeing?
For example, what do you mean by "an unspecified branch"? Unspecified where?
Another example, what do you mean by "changes the parent of the latest commit"? I generally act as though git history is immutable, so there is not a direct way to modify the parent of the latest commit. I realize that git history is not truly immutable, and that
can be used to modify history of a remote repository, but I'm surprised if that's the case you're describing here, since you never mentioned "force".