The other fetch* operations will result in either the relevant files or
symlinks to them being present in the parent directory. However, the
cache path does not do that, so if a deletes relevant files from .., but
not the cache, the build will succeed, but there will be no orig in the
parent directory. This is not in and of itself necessarily an error, as
the orig tarball is only needed for further use on merges and upstream
updates, but it is counter-intuitive and inconsistent.
git_repository._add_remote_by_fetch_url: force update remote-tracking refs
With the recent changes to the importer algorithm (e.g., dropping of
publishing parents, force moving of branch refs), it is no longer
guaranteed that the series branches are fast-forwarding. However, our
default refspecs installed by `git ubuntu clone` will error out when
they are not. Expect non-fastfowarding updates to the branches and tags,
as we implicitly want to treat the remote as authoritative for those
objects.
git_repository.Changelog: dpkg-parsechangelog returns 'unknown' in some cases
When a changelog version is unparseable, under RFC822, the return value
is 'unknown'. We might be able to obtain a valid value with the
debian.Changelog class, but we will fail to match the old output.
Note, we would obtain a valid and matching value with the manual shell
parsing, but we won't fallback to the latter because 'unknown' is not an
error condition.
Special-case 'unknown' from the dpkg-parsechangelog output as not being
failure when the old and new output does not match.