Sure. So first of all this is a git "problem" not a bitbake fetcher git.py lib "problem".
do_fetch task was able to fetch everything properly during recipe build, storing it in DL_DIR as expected.
Second developer created the upstream branch "foo/bar" with code changes.
Meanwhile the first developer deleted the branch "foo" upstream.
The second developer updated the recipe to use the new branch:
During do_fetch, git is not able to fetch the "foo/bar" branch as the parent reference "foo"
no longer exists in the upstream repo (only exists on local) triggering the error visible in the log.do_fetch
error: cannot lock ref 'refs/heads/foo/bar': 'refs/heads/foo' exists; cannot create 'refs/heads/foo/bar'
From https://github.com/org/random-repo
! [new branch] foo/bar -> foo/bar (unable to update local ref)
If I add back the --prune option that was removed
here, "git fetch" will work with the following message
will appear in log.do_fetch
From https://github.com/org/random-repo
- [deleted] (none) -> foo
* [new branch] foo/bar -> foo/bar