~racb/git-ubuntu:repo-builder

Last commit made on 2017-11-13
Get this branch:
git clone -b repo-builder https://git.launchpad.net/~racb/git-ubuntu
Only Robie Basak can upload to this branch. If you are Robie Basak please log in for upload directions.

Branch merges

Branch information

Name:
repo-builder
Repository:
lp:~racb/git-ubuntu

Recent commits

80b7dc4... by Robie Basak

Add test_git_repository.py

As a starting point, this adds tests for follow_symlinks_to_blob using
repo_builder.py.

f034bd1... by Robie Basak

follow_symlinks_to_blob: fix symlink edge case

Fix the case where changelog is a symlink to another file in the same
directory.

A test for this is in the following commit.

765a34f... by Robie Basak

Add repo_builder.py

Represent a git repository as a single Python data structure. This
module is explained in more detail in its docstring.

6e7088f... by Nish Aravamudan

build: symlink cache hits into parent directory

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.

LP: #1731513

745ce92... by Nish Aravamudan

build: clarify variable name in _symlink_paths_into_parent_dir

It is a new path not an old path.

26bb9d1... by Nish Aravamudan

git_repository: drop unused merge_commit_to_devel_head

c903505... by Nish Aravamudan

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.

LP: #1731299

c8921d4... by Nish Aravamudan

git_repository: consolidate refspecs to one function

We have a bug in our refspec defaults, and it is more likely to
happen again if we have identical strings in multiple places.

Reformat some of the related code based upon style.

8ed2346... by Nish Aravamudan

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.

Add a unit-test for this case, as well.

LP: #1730780

52a87f8... by Nish Aravamudan

git_repository.Changelog.all_versions: modify exception message

Rather than emit the long (typically) list of all versions, only emit
the relevant differences.