~nacc/git-ubuntu:lp1730655-fix-importer-devel-branches

Last commit made on 2017-11-13
Get this branch:
git clone -b lp1730655-fix-importer-devel-branches https://git.launchpad.net/~nacc/git-ubuntu
Only Nish Aravamudan can upload to this branch. If you are Nish Aravamudan please log in for upload directions.

Branch merges

Branch information

Name:
lp1730655-fix-importer-devel-branches
Repository:
lp:~nacc/git-ubuntu

Recent commits

853cb2e... by Nish Aravamudan

importer: rework and move devel pointer moving

After discussion with Robie on IRC, we decided that 0f3c943054ab
("import: drop publishing parent functionality") and 5aa33fa08078 ("Also
reset devel heads") introduced a regression in the semantics of the
devel pointers.

Before those changes, the devel pointers were merged up so as to be
fast-forwarding, as we imported publication entries, if the publication
entry was newer than the current devel pointer. In other words, the
devel pointers were part of the commit graph itself.

After those changes, the devel pointers are more like symbolic
references, describing meta-state about the commit graph, rather than
integral to the graph itself:

A given series devel branch, after a successful import, points to the
latest publication record in a given series.

The ubuntu/devel branch, after a successful import, points to the latest
series devel branch.

Given these 'rules', we can stop updating the devel pointers in the main
import loop and just do so after we are done importing. All series
branch pointers are updated, which is unnecessary but will generally be
a no-op. This allows the method to not be aware of reimporting or not.

LP: #1730655

Fixes: 0f3c943054ab ("import: drop publishing parent functionality")
Fixes: 5aa33fa08078 ("Also reset devel heads")

9507164... by Nish Aravamudan

source_information: add API to obtain all series objects/names

f53eda9... by Nish Aravamudan

source_information: cleanup formatting per style

02e3e7d... by Nish Aravamudan

source_information: fix incorrect API comments

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