There was some manual check to know if the existing repository is actually a clone of the branch specified in $source. However this check needs to be semantic, not a simple string comparison. For example, I was blocked from building a PKGBUILD which uses a Bazaar repository in $source, because Bazaar was returning two different strings for the same location (for HTTP one was url-encoded while the other was not, and for local paths one was absolute while the other was relative).

While this may be a bug in Bazaar, the check is unreliable since the comparison is not semantic (http://foo.com/%2Bplus and http://foo.com/+plus obviously refer to the same location for example). It is also useless because the intention is updating the existing local clone. However, if the local clone is not a real clone of the repository specified in $source (which is what this buggy check tries to tell), next step which is a pull operation will fail anyway.

I'm not sure why this kind of code is used but it looks pretty useless for any VCS at all. Maybe they wanted to avoid that non-clones successfully pulled from $source (for example if the non-clone simply just lacks some commits), but isn't this a corner case? Anyway, upstream may be interested in removing these checks for all VCS systems.