Commits


detect objects missing from pack file that should be present


fix None-deref


allow loader to detect the set of fetched branch and tag names


only check for unknown objects if base snapshots are available


display amount of packed objects after indexing


more debug


more tag debug


tag debugging


for now, send tags to the archive unconditionally


tweak debug


fix commit processing


improve performance and debug log output


syntactic changes made by black and isort


reduce storage requests by inferring object presence via dependencies Query the presence of packed objects in bulk. First look for missing contents. Assuming topogical loading order, trees, commits, and tags which depend on these contents will be missing as well. Based on this assumption we can avoid sending queries about such objects to storage. The approach was suggested by olasd, but all potential bugs in here are mine.


keep track of Git object types in the graph of packed objects


fix typo in test name


traverse a given tree object only once; many commits can contain it


the pointer between commits must point the other way pointed out by olasd


add all commits found in pack file to the graph, not just tip commits pointed out by olasd


exclude submodules from the packed object graph pointed out by olasd


use igraph to store our graph of packed git objects


build a graph of objects found in the pack file Not used yet, still WIP.


make the Git loader load objects in topological order The Git loader will now send objects to storage in topological Git DAG order. There is no support for topological order in the dumb loader yet because the current implementation assumes that a single pack file will be fetched from the server. The tests are passing, except for these 4: TestGitLoader::test_metrics TestGitLoader::test_metrics_filtered TestGitLoader2::test_load_incremental TestGitLoader2::test_load_incremental_from[partial-parent-and-empty-previous] It seems these tests depend on assumptions that are no longer valid once objects get loaded in topological order? The implementation does not yet handle edge cases such as tags pointing at non-commit objects.


tests: Fix numerous tests after recent changes in loader-core BaseLoader.load now returns a dict with an extra error field when a loading fails.


Fix Commit.extra is deprecated