v3:
* fixed and extended the commit message of last commit
* fixed the last patch, as Jonathan Tan suggested, see interdiff:
$ git diff remotes/origin/sb/oid-object-info (which is v2)
diff --git c/sha1_file.c w/sha1_file.c
index 94123e0299..dcd6b879ac 100644
--- c/sha1_file.c
+++ w/sha1_file.c
@@ -1289,14 +1289,13 @@ int oid_object_info_extended(struct repository *r,
const struct object_id *oid,
/* Check if it is a missing object */
if (fetch_if_missing && repository_format_partial_clone &&
- !already_retried) {
+ !already_retried && r == the_repository) {
/*
* TODO Investigate having fetch_object() return
* TODO error/success and stopping the music here.
- * TODO Pass a repository struct through
fetch_object.
+ * TODO Pass a repository struct through
fetch_object,
+ * such that arbitrary repositories work.
*/
- if (r != the_repository)
- die(_("partial clones only supported in
the_repository"));
fetch_object(repository_format_partial_clone,
real->hash);
already_retried = 1;
continue;
Thanks,
Stefan
v2:
* fixed the sha1/oid typo
* removed spurious new line
* Brandon and Jonthan discovered another dependency that I missed due
to cherrypicking that commit from a tree before partial clone was a thing.
We error out when attempting to use fetch_object for repos that are not
the_repository.
Thanks,
Stefan
v1:
This applies on top of origin/sb/object-store-replace and is available as
https://github.com/stefanbeller/git/tree/oid_object_info
This continues the work of sb/packfiles-in-repository,
extending the layer at which we have to pass in an explicit
repository object to oid_object_info.
A test merge to next shows only a minor merge conflicit (adding
different #include lines in one c file), so this might be a good next
step for the object store series.
Notes on further object store series:
I plan on converting the "parsed object store" next,
which would be {alloc, object, tree, commit, tag}.c as that is a prerequisite
for migrating shallow (which is intermingled with grafts) information to the
object store.
There is currently work going on in allocation (mempool - Jameson Miller)
and grafts (deprecate grafts - DScho), which is why I am sending this
series first. I think it can go in parallel to the "parsed object store"
that is coming next.
Thanks,
Stefan
Jonathan Nieder (1):
packfile: add repository argument to packed_object_info
Stefan Beller (8):
cache.h: add repository argument to oid_object_info_extended
cache.h: add repository argument to oid_object_info
packfile: add repository argument to retry_bad_packed_offset
packfile: add repository argument to packed_to_object_type
packfile: add repository argument to read_object
packfile: add repository argument to unpack_entry
packfile: add repository argument to cache_or_unpack_entry
cache.h: allow oid_object_info to handle arbitrary repositories
archive-tar.c | 2 +-
archive-zip.c | 3 ++-
blame.c | 4 ++--
builtin/blame.c | 2 +-
builtin/cat-file.c | 12 ++++++------
builtin/describe.c | 2 +-
builtin/fast-export.c | 2 +-
builtin/fetch.c | 2 +-
builtin/fsck.c | 3 ++-
builtin/index-pack.c | 4 ++--
builtin/ls-tree.c | 2 +-
builtin/mktree.c | 2 +-
builtin/pack-objects.c | 11 +++++++----
builtin/prune.c | 3 ++-
builtin/replace.c | 11 ++++++-----
builtin/tag.c | 4 ++--
builtin/unpack-objects.c | 2 +-
cache.h | 7 +++++--
diff.c | 3 ++-
fast-import.c | 16 ++++++++++------
list-objects-filter.c | 2 +-
object.c | 2 +-
pack-bitmap-write.c | 3 ++-
pack-check.c | 3 ++-
packfile.c | 40 +++++++++++++++++++++++-----------------
packfile.h | 6 ++++--
reachable.c | 2 +-
refs.c | 2 +-
remote.c | 2 +-
sequencer.c | 3 ++-
sha1_file.c | 37 +++++++++++++++++++++----------------
sha1_name.c | 12 ++++++------
streaming.c | 2 +-
submodule.c | 2 +-
tag.c | 2 +-
35 files changed, 124 insertions(+), 93 deletions(-)
--
2.17.0.441.gb46fe60e1d-goog