If you specify a tag which is not a sha1 hash in a git URI then it will be ignored; when it unpacks you get master instead. Example URI: SRC_URI = "git://git.ipxe.org/ipxe.git;protocol=git;tag=v${PV}"
The culprit is here: bitbake/lib/bb/fetch2/git.py: " for name in ud.names: # Ensure anything that doesn't look like a sha256 checksum/revision is translated into one if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]): ud.revisions[name] = self.latest_revision(ud.url, ud, d, name) " when revision is tag like v${PV}, fetcher will consider it as invalid sha256 checksum, and replace it with master laster revision. Need to think about the better way to handle this case
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=a2030c8d1a58c79428cba80158982aea4d2d9f6d
Bernard http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=0137a98b28f0810e3361fc2ef86e88fca22def2d