git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Stefan Beller <sbeller@google.com>
To: git@vger.kernel.org
Cc: Stefan Beller <sbeller@google.com>, Jonathan Nieder <jrnieder@gmail.com>
Subject: [PATCH 065/194] object-store: add repository argument to sha1_object_info
Date: Mon,  5 Feb 2018 15:55:26 -0800	[thread overview]
Message-ID: <20180205235735.216710-45-sbeller@google.com> (raw)
In-Reply-To: <20180205235735.216710-1-sbeller@google.com>

Add a repository argument to allow the callers of sha1_object_info
to be more specific about which repository to handle. This is a small
mechanical change; it doesn't change the implementation to handle
repositories other than the_repository yet.

As with the previous commits, use a macro to catch callers passing a
repository other than the_repository at compile time.

In the expanded macro the identifier `the_repository` is not actually used,
so the compiler does not catch if the repository.h header is not included
at the call site. call sites needing that #include were identified by
changing the macro to definition to

  #define sha1_object_info(r, sha1, size) \
      (r, sha1_object_info_##r(sha1, size)).

This produces a compiler warning about the left hand side of the comma
operator being unused, which can be suppressed using -Wno-unused-value.

To avoid breaking bisection, do not include this trick in the patch.

There is a large number of callers. The included coccinelle semantic patch
will adapt any new callers in the diff produced by `make coccicheck`.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
---
 archive-tar.c                             |  3 ++-
 archive-zip.c                             |  4 +++-
 blame.c                                   |  5 +++--
 builtin/cat-file.c                        |  6 +++---
 builtin/fast-export.c                     |  3 ++-
 builtin/fetch.c                           |  3 ++-
 builtin/fsck.c                            |  3 ++-
 builtin/index-pack.c                      |  7 +++++--
 builtin/ls-tree.c                         |  3 ++-
 builtin/mktree.c                          |  3 ++-
 builtin/pack-objects.c                    |  9 ++++++---
 builtin/prune.c                           |  3 ++-
 builtin/replace.c                         | 12 +++++++-----
 builtin/tag.c                             |  5 +++--
 builtin/unpack-objects.c                  |  4 +++-
 contrib/coccinelle/sha1_object_info.cocci |  7 +++++++
 diff.c                                    |  4 +++-
 fast-import.c                             | 16 +++++++++++-----
 list-objects-filter.c                     |  2 +-
 object-store.h                            |  5 ++++-
 object.c                                  |  2 +-
 pack-bitmap-write.c                       |  4 +++-
 packfile.c                                |  2 +-
 reachable.c                               |  2 +-
 refs.c                                    |  2 +-
 remote.c                                  |  3 ++-
 sequencer.c                               |  5 ++++-
 sha1_file.c                               |  4 ++--
 sha1_name.c                               | 12 ++++++------
 submodule.c                               |  2 +-
 tag.c                                     |  3 ++-
 31 files changed, 97 insertions(+), 51 deletions(-)
 create mode 100644 contrib/coccinelle/sha1_object_info.cocci

diff --git a/archive-tar.c b/archive-tar.c
index 909347c108..b10c9b8911 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -5,6 +5,7 @@
 #include "config.h"
 #include "tar.h"
 #include "archive.h"
+#include "repository.h"
 #include "object-store.h"
 #include "streaming.h"
 #include "run-command.h"
@@ -277,7 +278,7 @@ static int write_tar_entry(struct archiver_args *args,
 		memcpy(header.name, path, pathlen);
 
 	if (S_ISREG(mode) && !args->convert &&
-	    sha1_object_info(sha1, &size) == OBJ_BLOB &&
+	    sha1_object_info(the_repository, sha1, &size) == OBJ_BLOB &&
 	    size > big_file_threshold)
 		buffer = NULL;
 	else if (S_ISLNK(mode) || S_ISREG(mode)) {
diff --git a/archive-zip.c b/archive-zip.c
index 233fed3a61..03321b9777 100644
--- a/archive-zip.c
+++ b/archive-zip.c
@@ -6,6 +6,7 @@
 #include "archive.h"
 #include "streaming.h"
 #include "utf8.h"
+#include "repository.h"
 #include "object-store.h"
 #include "userdiff.h"
 #include "xdiff-interface.h"
@@ -326,7 +327,8 @@ static int write_zip_entry(struct archiver_args *args,
 		compressed_size = 0;
 		buffer = NULL;
 	} else if (S_ISREG(mode) || S_ISLNK(mode)) {
-		enum object_type type = sha1_object_info(sha1, &size);
+		enum object_type type = sha1_object_info(the_repository, sha1,
+							 &size);
 
 		method = 0;
 		attr2 = S_ISLNK(mode) ? ((mode | 0777) << 16) :
diff --git a/blame.c b/blame.c
index 61f0f6bb40..f95a53898d 100644
--- a/blame.c
+++ b/blame.c
@@ -1,5 +1,6 @@
 #include "cache.h"
 #include "refs.h"
+#include "repository.h"
 #include "object-store.h"
 #include "cache-tree.h"
 #include "mergesort.h"
@@ -82,7 +83,7 @@ static void verify_working_tree_path(struct commit *work_tree, const char *path)
 		unsigned mode;
 
 		if (!get_tree_entry(commit_oid->hash, path, blob_oid.hash, &mode) &&
-		    sha1_object_info(blob_oid.hash, NULL) == OBJ_BLOB)
+		    sha1_object_info(the_repository, blob_oid.hash, NULL) == OBJ_BLOB)
 			return;
 	}
 
@@ -507,7 +508,7 @@ static int fill_blob_sha1_and_mode(struct blame_origin *origin)
 			   origin->path,
 			   origin->blob_oid.hash, &origin->mode))
 		goto error_out;
-	if (sha1_object_info(origin->blob_oid.hash, NULL) != OBJ_BLOB)
+	if (sha1_object_info(the_repository, origin->blob_oid.hash, NULL) != OBJ_BLOB)
 		goto error_out;
 	return 0;
  error_out:
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index fdc70aa419..96c834b8f4 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -117,7 +117,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
 		/* else fallthrough */
 
 	case 'p':
-		type = sha1_object_info(oid.hash, NULL);
+		type = sha1_object_info(the_repository, oid.hash, NULL);
 		if (type < 0)
 			die("Not a valid object name %s", obj_name);
 
@@ -141,7 +141,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
 	case 0:
 		if (type_from_string(exp_type) == OBJ_BLOB) {
 			struct object_id blob_oid;
-			if (sha1_object_info(oid.hash, NULL) == OBJ_TAG) {
+			if (sha1_object_info(the_repository, oid.hash, NULL) == OBJ_TAG) {
 				char *buffer = read_sha1_file(oid.hash, &type, &size);
 				const char *target;
 				if (!skip_prefix(buffer, "object ", &target) ||
@@ -151,7 +151,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
 			} else
 				oidcpy(&blob_oid, &oid);
 
-			if (sha1_object_info(blob_oid.hash, NULL) == OBJ_BLOB)
+			if (sha1_object_info(the_repository, blob_oid.hash, NULL) == OBJ_BLOB)
 				return stream_blob_to_fd(1, &blob_oid, NULL, 0);
 			/*
 			 * we attempted to dereference a tag to a blob
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index f76b7bda79..d4e53908c6 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -7,6 +7,7 @@
 #include "cache.h"
 #include "config.h"
 #include "refs.h"
+#include "repository.h"
 #include "object-store.h"
 #include "commit.h"
 #include "object.h"
@@ -948,7 +949,7 @@ static void import_marks(char *input_file)
 		if (last_idnum < mark)
 			last_idnum = mark;
 
-		type = sha1_object_info(oid.hash, NULL);
+		type = sha1_object_info(the_repository, oid.hash, NULL);
 		if (type < 0)
 			die("object not found: %s", oid_to_hex(&oid));
 
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 9b7202953b..276beebbb1 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -5,6 +5,7 @@
 #include "config.h"
 #include "repository.h"
 #include "refs.h"
+#include "repository.h"
 #include "object-store.h"
 #include "commit.h"
 #include "builtin.h"
@@ -624,7 +625,7 @@ static int update_local_ref(struct ref *ref,
 	struct branch *current_branch = branch_get(NULL);
 	const char *pretty_ref = prettify_refname(ref->name);
 
-	type = sha1_object_info(ref->new_oid.hash, NULL);
+	type = sha1_object_info(the_repository, ref->new_oid.hash, NULL);
 	if (type < 0)
 		die(_("object %s not found"), oid_to_hex(&ref->new_oid));
 
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 920cc50923..f5e3c51077 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -69,7 +69,8 @@ static const char *printable_type(struct object *obj)
 	const char *ret;
 
 	if (obj->type == OBJ_NONE) {
-		enum object_type type = sha1_object_info(obj->oid.hash, NULL);
+		enum object_type type = sha1_object_info(the_repository,
+							 obj->oid.hash, NULL);
 		if (type > 0)
 			object_as_type(obj, type, 0);
 	}
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 1902d4e096..b9851ad69d 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -12,6 +12,7 @@
 #include "exec_cmd.h"
 #include "streaming.h"
 #include "thread-utils.h"
+#include "repository.h"
 #include "object-store.h"
 #include "packfile.h"
 
@@ -222,7 +223,8 @@ static unsigned check_object(struct object *obj)
 
 	if (!(obj->flags & FLAG_CHECKED)) {
 		unsigned long size;
-		int type = sha1_object_info(obj->oid.hash, &size);
+		int type = sha1_object_info(the_repository, obj->oid.hash,
+					    &size);
 		if (type <= 0)
 			die(_("did not receive expected object %s"),
 			      oid_to_hex(&obj->oid));
@@ -811,7 +813,8 @@ static void sha1_object(const void *data, struct object_entry *obj_entry,
 		enum object_type has_type;
 		unsigned long has_size;
 		read_lock();
-		has_type = sha1_object_info(oid->hash, &has_size);
+		has_type = sha1_object_info(the_repository, oid->hash,
+					    &has_size);
 		if (has_type < 0)
 			die(_("cannot read existing object info %s"), oid_to_hex(oid));
 		if (has_type != type || has_size != size)
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 78fcced566..d929da03b4 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -5,6 +5,7 @@
  */
 #include "cache.h"
 #include "config.h"
+#include "repository.h"
 #include "object-store.h"
 #include "blob.h"
 #include "tree.h"
@@ -95,7 +96,7 @@ static int show_tree(const unsigned char *sha1, struct strbuf *base,
 			char size_text[24];
 			if (!strcmp(type, blob_type)) {
 				unsigned long size;
-				if (sha1_object_info(sha1, &size) == OBJ_BAD)
+				if (sha1_object_info(the_repository, sha1, &size) == OBJ_BAD)
 					xsnprintf(size_text, sizeof(size_text),
 						  "BAD");
 				else
diff --git a/builtin/mktree.c b/builtin/mktree.c
index 0f66946618..ccb3a7a897 100644
--- a/builtin/mktree.c
+++ b/builtin/mktree.c
@@ -7,6 +7,7 @@
 #include "quote.h"
 #include "tree.h"
 #include "parse-options.h"
+#include "repository.h"
 #include "object-store.h"
 
 static struct treeent {
@@ -117,7 +118,7 @@ static void mktree_line(char *buf, size_t len, int nul_term_line, int allow_miss
 	}
 
 	/* Check the type of object identified by sha1 */
-	obj_type = sha1_object_info(sha1, NULL);
+	obj_type = sha1_object_info(the_repository, sha1, NULL);
 	if (obj_type < 0) {
 		if (allow_missing) {
 			; /* no problem - missing objects are presumed to be of the right type */
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 7cb73c29ac..79ec5c6842 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -1519,7 +1519,8 @@ static void check_object(struct object_entry *entry)
 		unuse_pack(&w_curs);
 	}
 
-	entry->type = sha1_object_info(entry->idx.oid.hash, &entry->size);
+	entry->type = sha1_object_info(the_repository, entry->idx.oid.hash,
+				       &entry->size);
 	/*
 	 * The error condition is checked in prepare_pack().  This is
 	 * to permit a missing preferred base object to be ignored
@@ -1581,7 +1582,8 @@ static void drop_reused_delta(struct object_entry *entry)
 		 * And if that fails, the error will be recorded in entry->type
 		 * and dealt with in prepare_pack().
 		 */
-		entry->type = sha1_object_info(entry->idx.oid.hash,
+		entry->type = sha1_object_info(the_repository,
+					       entry->idx.oid.hash,
 					       &entry->size);
 	}
 }
@@ -2689,7 +2691,8 @@ static void add_objects_in_unpacked_packs(struct rev_info *revs)
 static int add_loose_object(const struct object_id *oid, const char *path,
 			    void *data)
 {
-	enum object_type type = sha1_object_info(oid->hash, NULL);
+	enum object_type type = sha1_object_info(the_repository, oid->hash,
+						 NULL);
 
 	if (type < 0) {
 		warning("loose object at %s could not be examined", path);
diff --git a/builtin/prune.c b/builtin/prune.c
index 52091f299e..7891048b35 100644
--- a/builtin/prune.c
+++ b/builtin/prune.c
@@ -51,7 +51,8 @@ static int prune_object(const struct object_id *oid, const char *fullpath,
 	if (st.st_mtime > expire)
 		return 0;
 	if (show_only || verbose) {
-		enum object_type type = sha1_object_info(oid->hash, NULL);
+		enum object_type type = sha1_object_info(the_repository,
+							 oid->hash, NULL);
 		printf("%s %s\n", oid_to_hex(oid),
 		       (type > 0) ? typename(type) : "unknown");
 	}
diff --git a/builtin/replace.c b/builtin/replace.c
index 6d27dd73f0..25322d2f73 100644
--- a/builtin/replace.c
+++ b/builtin/replace.c
@@ -55,8 +55,10 @@ static int show_reference(const char *refname, const struct object_id *oid,
 			if (get_oid(refname, &object))
 				return error("Failed to resolve '%s' as a valid ref.", refname);
 
-			obj_type = sha1_object_info(object.hash, NULL);
-			repl_type = sha1_object_info(oid->hash, NULL);
+			obj_type = sha1_object_info(the_repository,
+						    object.hash, NULL);
+			repl_type = sha1_object_info(the_repository,
+						     oid->hash, NULL);
 
 			printf("%s (%s) -> %s (%s)\n", refname, typename(obj_type),
 			       oid_to_hex(oid), typename(repl_type));
@@ -164,8 +166,8 @@ static int replace_object_oid(const char *object_ref,
 	struct ref_transaction *transaction;
 	struct strbuf err = STRBUF_INIT;
 
-	obj_type = sha1_object_info(object->hash, NULL);
-	repl_type = sha1_object_info(repl->hash, NULL);
+	obj_type = sha1_object_info(the_repository, object->hash, NULL);
+	repl_type = sha1_object_info(the_repository, repl->hash, NULL);
 	if (!force && obj_type != repl_type)
 		die("Objects must be of the same type.\n"
 		    "'%s' points to a replaced object of type '%s'\n"
@@ -292,7 +294,7 @@ static int edit_and_replace(const char *object_ref, int force, int raw)
 	if (get_oid(object_ref, &old) < 0)
 		die("Not a valid object name: '%s'", object_ref);
 
-	type = sha1_object_info(old.hash, NULL);
+	type = sha1_object_info(the_repository, old.hash, NULL);
 	if (type < 0)
 		die("unable to get object type for %s", oid_to_hex(&old));
 
diff --git a/builtin/tag.c b/builtin/tag.c
index 7ed3506fff..014d7c9e9b 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -10,6 +10,7 @@
 #include "config.h"
 #include "builtin.h"
 #include "refs.h"
+#include "repository.h"
 #include "object-store.h"
 #include "tag.h"
 #include "run-command.h"
@@ -211,7 +212,7 @@ static void create_tag(const struct object_id *object, const char *tag,
 	struct strbuf header = STRBUF_INIT;
 	char *path = NULL;
 
-	type = sha1_object_info(object->hash, NULL);
+	type = sha1_object_info(the_repository, object->hash, NULL);
 	if (type <= OBJ_NONE)
 	    die(_("bad object type."));
 
@@ -294,7 +295,7 @@ static void create_reflog_msg(const struct object_id *oid, struct strbuf *sb)
 	}
 
 	strbuf_addstr(sb, " (");
-	type = sha1_object_info(oid->hash, NULL);
+	type = sha1_object_info(the_repository, oid->hash, NULL);
 	switch (type) {
 	default:
 		strbuf_addstr(sb, "object of unknown type");
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
index 6d03ea2670..ee707068b3 100644
--- a/builtin/unpack-objects.c
+++ b/builtin/unpack-objects.c
@@ -1,6 +1,7 @@
 #include "builtin.h"
 #include "cache.h"
 #include "config.h"
+#include "repository.h"
 #include "object-store.h"
 #include "object.h"
 #include "delta.h"
@@ -198,7 +199,8 @@ static int check_object(struct object *obj, int type, void *data, struct fsck_op
 
 	if (!(obj->flags & FLAG_OPEN)) {
 		unsigned long size;
-		int type = sha1_object_info(obj->oid.hash, &size);
+		int type = sha1_object_info(the_repository, obj->oid.hash,
+					    &size);
 		if (type != obj->type || type <= 0)
 			die("object of unexpected type");
 		obj->flags |= FLAG_WRITTEN;
diff --git a/contrib/coccinelle/sha1_object_info.cocci b/contrib/coccinelle/sha1_object_info.cocci
new file mode 100644
index 0000000000..800e0581e5
--- /dev/null
+++ b/contrib/coccinelle/sha1_object_info.cocci
@@ -0,0 +1,7 @@
+@@
+expression E;
+expression F;
+@@
+ sha1_object_info(
++the_repository,
+ E, F)
diff --git a/diff.c b/diff.c
index e89c7d9919..08bff6e720 100644
--- a/diff.c
+++ b/diff.c
@@ -13,6 +13,7 @@
 #include "attr.h"
 #include "run-command.h"
 #include "utf8.h"
+#include "repository.h"
 #include "object-store.h"
 #include "userdiff.h"
 #include "submodule-config.h"
@@ -3616,7 +3617,8 @@ int diff_populate_filespec(struct diff_filespec *s, unsigned int flags)
 	else {
 		enum object_type type;
 		if (size_only || (flags & CHECK_BINARY)) {
-			type = sha1_object_info(s->oid.hash, &s->size);
+			type = sha1_object_info(the_repository, s->oid.hash,
+						&s->size);
 			if (type < 0)
 				die("unable to read %s",
 				    oid_to_hex(&s->oid));
diff --git a/fast-import.c b/fast-import.c
index 39cd0b7540..2542f600ef 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1913,7 +1913,9 @@ static void read_marks(void)
 			die("corrupt mark line: %s", line);
 		e = find_object(&oid);
 		if (!e) {
-			enum object_type type = sha1_object_info(oid.hash, NULL);
+			enum object_type type = sha1_object_info(the_repository,
+								 oid.hash,
+								 NULL);
 			if (type < 0)
 				die("object not found: %s", oid_to_hex(&oid));
 			e = insert_object(&oid);
@@ -2443,7 +2445,8 @@ static void file_change_m(const char *p, struct branch *b)
 		enum object_type expected = S_ISDIR(mode) ?
 						OBJ_TREE: OBJ_BLOB;
 		enum object_type type = oe ? oe->type :
-					sha1_object_info(oid.hash, NULL);
+					sha1_object_info(the_repository,
+							 oid.hash, NULL);
 		if (type < 0)
 			die("%s not found: %s",
 					S_ISDIR(mode) ?  "Tree" : "Blob",
@@ -2603,7 +2606,8 @@ static void note_change_n(const char *p, struct branch *b, unsigned char *old_fa
 			die("Not a blob (actually a %s): %s",
 				typename(oe->type), command_buf.buf);
 	} else if (!is_null_oid(&oid)) {
-		enum object_type type = sha1_object_info(oid.hash, NULL);
+		enum object_type type = sha1_object_info(the_repository,
+							 oid.hash, NULL);
 		if (type < 0)
 			die("Blob not found: %s", command_buf.buf);
 		if (type != OBJ_BLOB)
@@ -2890,7 +2894,8 @@ static void parse_new_tag(const char *arg)
 	} else if (!get_oid(from, &oid)) {
 		struct object_entry *oe = find_object(&oid);
 		if (!oe) {
-			type = sha1_object_info(oid.hash, NULL);
+			type = sha1_object_info(the_repository, oid.hash,
+						NULL);
 			if (type < 0)
 				die("Not a valid object: %s", from);
 		} else
@@ -3048,7 +3053,8 @@ static struct object_entry *dereference(struct object_entry *oe,
 	unsigned long size;
 	char *buf = NULL;
 	if (!oe) {
-		enum object_type type = sha1_object_info(oid->hash, NULL);
+		enum object_type type = sha1_object_info(the_repository,
+							 oid->hash, NULL);
 		if (type < 0)
 			die("object not found: %s", oid_to_hex(oid));
 		/* cache it! */
diff --git a/list-objects-filter.c b/list-objects-filter.c
index 4356c45368..180d8729d9 100644
--- a/list-objects-filter.c
+++ b/list-objects-filter.c
@@ -117,7 +117,7 @@ static enum list_objects_filter_result filter_blobs_limit(
 		assert(obj->type == OBJ_BLOB);
 		assert((obj->flags & SEEN) == 0);
 
-		t = sha1_object_info(obj->oid.hash, &object_length);
+		t = sha1_object_info(the_repository, obj->oid.hash, &object_length);
 		if (t != OBJ_BLOB) { /* probably OBJ_NONE */
 			/*
 			 * We DO NOT have the blob locally, so we cannot
diff --git a/object-store.h b/object-store.h
index e1e592bdd5..4ff60e3be0 100644
--- a/object-store.h
+++ b/object-store.h
@@ -91,7 +91,10 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *
 }
 
 /* Read and unpack a sha1 file into memory, write memory to a sha1 file */
-extern int sha1_object_info(const unsigned char *, unsigned long *);
+
+#define sha1_object_info(r, sha1, size) \
+	sha1_object_info_##r(sha1, size)
+extern int sha1_object_info_the_repository(const unsigned char *, unsigned long *);
 extern int hash_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *sha1);
 extern int write_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *return_sha1);
 extern int hash_sha1_file_literally(const void *buf, unsigned long len, const char *type, struct object_id *oid, unsigned flags);
diff --git a/object.c b/object.c
index a5cafb10e7..40f7c7bdab 100644
--- a/object.c
+++ b/object.c
@@ -256,7 +256,7 @@ struct object *parse_object(const struct object_id *oid)
 
 	if ((obj && obj->type == OBJ_BLOB) ||
 	    (!obj && has_object_file(oid) &&
-	     sha1_object_info(oid->hash, NULL) == OBJ_BLOB)) {
+	     sha1_object_info(the_repository, oid->hash, NULL) == OBJ_BLOB)) {
 		if (check_sha1_signature(repl, NULL, 0, NULL) < 0) {
 			error("sha1 mismatch %s", oid_to_hex(oid));
 			return NULL;
diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c
index 6a656104af..f684ed5ea2 100644
--- a/pack-bitmap-write.c
+++ b/pack-bitmap-write.c
@@ -1,4 +1,5 @@
 #include "cache.h"
+#include "repository.h"
 #include "object-store.h"
 #include "commit.h"
 #include "tag.h"
@@ -74,7 +75,8 @@ void bitmap_writer_build_type_index(struct pack_idx_entry **index,
 			break;
 
 		default:
-			real_type = sha1_object_info(entry->idx.oid.hash,
+			real_type = sha1_object_info(the_repository,
+						     entry->idx.oid.hash,
 						     NULL);
 			break;
 		}
diff --git a/packfile.c b/packfile.c
index b73814f2ce..a1c1b1a42e 100644
--- a/packfile.c
+++ b/packfile.c
@@ -1092,7 +1092,7 @@ static int retry_bad_packed_offset(struct packed_git *p, off_t obj_offset)
 		return OBJ_BAD;
 	sha1 = nth_packed_object_sha1(p, revidx->nr);
 	mark_bad_packed_object(p, sha1);
-	type = sha1_object_info(sha1, NULL);
+	type = sha1_object_info(the_repository, sha1, NULL);
 	if (type <= OBJ_NONE)
 		return OBJ_BAD;
 	return type;
diff --git a/reachable.c b/reachable.c
index ac5224b9a5..7e7b9525c0 100644
--- a/reachable.c
+++ b/reachable.c
@@ -79,7 +79,7 @@ static void add_recent_object(const struct object_id *oid,
 	 * later processing, and the revision machinery expects
 	 * commits and tags to have been parsed.
 	 */
-	type = sha1_object_info(oid->hash, NULL);
+	type = sha1_object_info(the_repository, oid->hash, NULL);
 	if (type < 0)
 		die("unable to get object info for %s", oid_to_hex(oid));
 
diff --git a/refs.c b/refs.c
index e534ff4256..ddcb4a908f 100644
--- a/refs.c
+++ b/refs.c
@@ -303,7 +303,7 @@ enum peel_status peel_object(const struct object_id *name, struct object_id *oid
 	struct object *o = lookup_unknown_object(name->hash);
 
 	if (o->type == OBJ_NONE) {
-		int type = sha1_object_info(name->hash, NULL);
+		int type = sha1_object_info(the_repository, name->hash, NULL);
 		if (type < 0 || !object_as_type(o, type, 0))
 			return PEEL_INVALID;
 	}
diff --git a/remote.c b/remote.c
index 5112f370c3..fd8cd8ce77 100644
--- a/remote.c
+++ b/remote.c
@@ -2,6 +2,7 @@
 #include "config.h"
 #include "remote.h"
 #include "refs.h"
+#include "repository.h"
 #include "object-store.h"
 #include "commit.h"
 #include "diff.h"
@@ -1362,7 +1363,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
 			continue; /* not a tag */
 		if (string_list_has_string(&dst_tag, ref->name))
 			continue; /* they already have it */
-		if (sha1_object_info(ref->new_oid.hash, NULL) != OBJ_TAG)
+		if (sha1_object_info(the_repository, ref->new_oid.hash, NULL) != OBJ_TAG)
 			continue; /* be conservative */
 		item = string_list_append(&src_tag, ref->name);
 		item->util = ref;
diff --git a/sequencer.c b/sequencer.c
index 234addd4e7..311f00acda 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -3,6 +3,7 @@
 #include "lockfile.h"
 #include "sequencer.h"
 #include "dir.h"
+#include "repository.h"
 #include "object-store.h"
 #include "object.h"
 #include "commit.h"
@@ -2347,7 +2348,9 @@ int sequencer_pick_revisions(struct replay_opts *opts)
 
 		if (!get_oid(name, &oid)) {
 			if (!lookup_commit_reference_gently(&oid, 1)) {
-				enum object_type type = sha1_object_info(oid.hash, NULL);
+				enum object_type type = sha1_object_info(the_repository,
+									 oid.hash,
+									 NULL);
 				return error(_("%s: can't cherry-pick a %s"),
 					name, typename(type));
 			}
diff --git a/sha1_file.c b/sha1_file.c
index a6df4b61c7..01bdb3cd7a 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1310,7 +1310,7 @@ int sha1_object_info_extended_the_repository(const unsigned char *sha1, struct o
 }
 
 /* returns enum object_type or negative */
-int sha1_object_info(const unsigned char *sha1, unsigned long *sizep)
+int sha1_object_info_the_repository(const unsigned char *sha1, unsigned long *sizep)
 {
 	enum object_type type;
 	struct object_info oi = OBJECT_INFO_INIT;
@@ -1962,7 +1962,7 @@ int read_pack_header(int fd, struct pack_header *header)
 
 void assert_sha1_type(const unsigned char *sha1, enum object_type expect)
 {
-	enum object_type type = sha1_object_info(sha1, NULL);
+	enum object_type type = sha1_object_info(the_repository, sha1, NULL);
 	if (type < 0)
 		die("%s is not a valid object", sha1_to_hex(sha1));
 	if (type != expect)
diff --git a/sha1_name.c b/sha1_name.c
index 03ce2ff7f2..190710c638 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -243,7 +243,7 @@ static int finish_object_disambiguation(struct disambiguate_state *ds,
 
 static int disambiguate_commit_only(const struct object_id *oid, void *cb_data_unused)
 {
-	int kind = sha1_object_info(oid->hash, NULL);
+	int kind = sha1_object_info(the_repository, oid->hash, NULL);
 	return kind == OBJ_COMMIT;
 }
 
@@ -252,7 +252,7 @@ static int disambiguate_committish_only(const struct object_id *oid, void *cb_da
 	struct object *obj;
 	int kind;
 
-	kind = sha1_object_info(oid->hash, NULL);
+	kind = sha1_object_info(the_repository, oid->hash, NULL);
 	if (kind == OBJ_COMMIT)
 		return 1;
 	if (kind != OBJ_TAG)
@@ -267,7 +267,7 @@ static int disambiguate_committish_only(const struct object_id *oid, void *cb_da
 
 static int disambiguate_tree_only(const struct object_id *oid, void *cb_data_unused)
 {
-	int kind = sha1_object_info(oid->hash, NULL);
+	int kind = sha1_object_info(the_repository, oid->hash, NULL);
 	return kind == OBJ_TREE;
 }
 
@@ -276,7 +276,7 @@ static int disambiguate_treeish_only(const struct object_id *oid, void *cb_data_
 	struct object *obj;
 	int kind;
 
-	kind = sha1_object_info(oid->hash, NULL);
+	kind = sha1_object_info(the_repository, oid->hash, NULL);
 	if (kind == OBJ_TREE || kind == OBJ_COMMIT)
 		return 1;
 	if (kind != OBJ_TAG)
@@ -291,7 +291,7 @@ static int disambiguate_treeish_only(const struct object_id *oid, void *cb_data_
 
 static int disambiguate_blob_only(const struct object_id *oid, void *cb_data_unused)
 {
-	int kind = sha1_object_info(oid->hash, NULL);
+	int kind = sha1_object_info(the_repository, oid->hash, NULL);
 	return kind == OBJ_BLOB;
 }
 
@@ -370,7 +370,7 @@ static int show_ambiguous_object(const struct object_id *oid, void *data)
 	if (ds->fn && !ds->fn(oid, ds->cb_data))
 		return 0;
 
-	type = sha1_object_info(oid->hash, NULL);
+	type = sha1_object_info(the_repository, oid->hash, NULL);
 	if (type == OBJ_COMMIT) {
 		struct commit *commit = lookup_commit(oid);
 		if (commit) {
diff --git a/submodule.c b/submodule.c
index f7736ec4b5..dc57c176e8 100644
--- a/submodule.c
+++ b/submodule.c
@@ -818,7 +818,7 @@ static int check_has_commit(const struct object_id *oid, void *data)
 {
 	struct has_commit_data *cb = data;
 
-	enum object_type type = sha1_object_info(oid->hash, NULL);
+	enum object_type type = sha1_object_info(the_repository, oid->hash, NULL);
 
 	switch (type) {
 	case OBJ_COMMIT:
diff --git a/tag.c b/tag.c
index 30798abf1f..7b32afd123 100644
--- a/tag.c
+++ b/tag.c
@@ -1,5 +1,6 @@
 #include "cache.h"
 #include "tag.h"
+#include "repository.h"
 #include "object-store.h"
 #include "commit.h"
 #include "tree.h"
@@ -42,7 +43,7 @@ int gpg_verify_tag(const struct object_id *oid, const char *name_to_report,
 	unsigned long size;
 	int ret;
 
-	type = sha1_object_info(oid->hash, NULL);
+	type = sha1_object_info(the_repository, oid->hash, NULL);
 	if (type != OBJ_TAG)
 		return error("%s: cannot verify a non-tag object of type %s.",
 				name_to_report ?
-- 
2.15.1.433.g936d1b9894.dirty


  parent reply	other threads:[~2018-02-06  0:08 UTC|newest]

Thread overview: 239+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-05 23:51 [RFC PATCH 000/194] Moving global state into the repository object Stefan Beller
2018-02-05 23:51 ` [PATCH 001/194] repository: introduce object store field Stefan Beller
2018-02-05 23:51 ` [PATCH 002/194] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-05 23:51 ` [PATCH 003/194] object-store: move packed_git and packed_git_mru " Stefan Beller
2018-02-09 22:09   ` Junio C Hamano
2018-02-12 19:00     ` Stefan Beller
2018-02-12 21:04       ` Junio C Hamano
2018-02-12 21:40         ` René Scharfe
2018-02-12 21:48           ` Junio C Hamano
2018-02-13 18:52             ` René Scharfe
2018-02-13 19:45               ` Stefan Beller
2018-02-14  1:26               ` Junio C Hamano
2018-02-12 21:40       ` René Scharfe
2018-02-05 23:51 ` [PATCH 004/194] pack: move prepare_packed_git_run_once " Stefan Beller
2018-02-05 23:51 ` [PATCH 005/194] pack: move approximate object count " Stefan Beller
2018-02-05 23:52 ` [PATCH 006/194] sha1_file: add repository argument to alt_odb_usable Stefan Beller
2018-02-05 23:52 ` [PATCH 007/194] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-05 23:52 ` [PATCH 008/194] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-05 23:52 ` [PATCH 009/194] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-05 23:52 ` [PATCH 010/194] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-05 23:52 ` [PATCH 011/194] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-05 23:52 ` [PATCH 012/194] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-05 23:52 ` [PATCH 013/194] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-05 23:52 ` [PATCH 014/194] object-store: add repository argument to prepare_alt_odb Stefan Beller
2018-02-05 23:52 ` [PATCH 015/194] object-store: add repository argument to foreach_alt_odb Stefan Beller
2018-02-05 23:52 ` [PATCH 016/194] pack: add repository argument to install_packed_git Stefan Beller
2018-02-05 23:52 ` [PATCH 017/194] pack: add repository argument to prepare_packed_git_one Stefan Beller
2018-02-05 23:52 ` [PATCH 018/194] pack: add repository argument to rearrange_packed_git Stefan Beller
2018-02-05 23:52 ` [PATCH 019/194] pack: add repository argument to prepare_packed_git_mru Stefan Beller
2018-02-05 23:52 ` [PATCH 020/194] pack: add repository argument to prepare_packed_git Stefan Beller
2018-02-05 23:52 ` [PATCH 021/194] pack: add repository argument to reprepare_packed_git Stefan Beller
2018-02-05 23:54 ` Stefan Beller
2018-02-05 23:54   ` [PATCH 022/194] pack: add repository argument to sha1_file_name Stefan Beller
2018-02-05 23:54   ` [PATCH 023/194] pack: add repository argument to map_sha1_file Stefan Beller
2018-02-05 23:54   ` [PATCH 024/194] sha1_file: allow alt_odb_usable to handle arbitrary repositories Stefan Beller
2018-02-05 23:54   ` [PATCH 025/194] object-store: allow prepare_alt_odb " Stefan Beller
2018-02-06  1:19     ` brian m. carlson
2018-02-06 13:44       ` Derrick Stolee
2018-02-06 17:48       ` Stefan Beller
2018-02-08  1:47         ` brian m. carlson
2018-02-07 22:06     ` Jonathan Tan
2018-02-05 23:54   ` [PATCH 026/194] object-store: allow foreach_alt_odb " Stefan Beller
2018-02-05 23:54   ` [PATCH 027/194] pack: allow install_packed_git " Stefan Beller
2018-02-05 23:54   ` [PATCH 028/194] pack: allow rearrange_packed_git " Stefan Beller
2018-02-05 23:54   ` [PATCH 029/194] pack: allow prepare_packed_git_mru " Stefan Beller
2018-02-05 23:54   ` [PATCH 030/194] pack: allow prepare_packed_git_one " Stefan Beller
2018-02-05 23:54   ` [PATCH 031/194] pack: allow prepare_packed_git " Stefan Beller
2018-02-05 23:54   ` [PATCH 032/194] pack: allow reprepare_packed_git " Stefan Beller
2018-02-05 23:54   ` [PATCH 033/194] pack: allow sha1_file_name " Stefan Beller
2018-02-05 23:54   ` [PATCH 034/194] pack: allow stat_sha1_file " Stefan Beller
2018-02-05 23:54   ` [PATCH 035/194] pack: allow open_sha1_file " Stefan Beller
2018-02-05 23:54   ` [PATCH 036/194] pack: allow map_sha1_file_1 " Stefan Beller
2018-02-05 23:54   ` [PATCH 037/194] pack: allow map_sha1_file " Stefan Beller
2018-02-05 23:54   ` [PATCH 038/194] pack: allow sha1_loose_object_info " Stefan Beller
2018-02-07 22:33     ` Jonathan Tan
2018-02-07 23:31       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 039/194] replace_object.c: rename to use dash in file name Stefan Beller
2018-02-05 23:55   ` [PATCH 040/194] replace-object: move replace_object to object store Stefan Beller
2018-02-05 23:55   ` [PATCH 041/194] sha1_file: add repository argument to sha1_object_info_extended Stefan Beller
2018-02-05 23:55   ` [PATCH 042/194] object-store: move alternates API to new alternates.h Stefan Beller
2018-02-06  1:44     ` brian m. carlson
2018-02-06 17:53       ` Stefan Beller
2018-02-09 23:12       ` Junio C Hamano
2018-02-06  4:52     ` Eric Sunshine
2018-02-06 17:52       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 043/194] object-store: move loose object functions to new loose-object.h Stefan Beller
2018-02-05 23:55   ` [PATCH 044/194] pack: move struct pack_window and pack_entry to packfile.h Stefan Beller
2018-02-05 23:55   ` [PATCH 045/194] object-store: move object access functions to object-store.h Stefan Beller
2018-02-05 23:55   ` [PATCH 046/194] object-store: move replace_objects back to object-store Stefan Beller
2018-02-09 23:15     ` Junio C Hamano
2018-02-12 19:08       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 047/194] object-store: move lookup_replace_object to replace-object.h Stefan Beller
2018-02-05 23:55   ` [PATCH 048/194] replace-object: add repository argument to do_lookup_replace_object Stefan Beller
2018-02-05 23:55   ` [PATCH 049/194] replace-object: move replace objects prepared flag to object store Stefan Beller
2018-02-05 23:55   ` [PATCH 050/194] replace-object: check_replace_refs is safe in multi repo environment Stefan Beller
2018-02-06  4:30     ` Eric Sunshine
2018-02-05 23:55   ` [PATCH 051/194] refs: add repository argument to for_each_replace_ref Stefan Beller
2018-02-05 23:55   ` [PATCH 052/194] refs: add repository argument to get_main_ref_store Stefan Beller
2018-02-05 23:55   ` [PATCH 053/194] replace-object: add repository argument to register_replace_object Stefan Beller
2018-02-05 23:55   ` [PATCH 054/194] replace-object: add repository argument to register_replace_ref Stefan Beller
2018-02-05 23:55   ` [PATCH 055/194] replace-object: add repository argument to replace_object_pos Stefan Beller
2018-02-05 23:55   ` [PATCH 056/194] replace-object: allow replace_object_pos to handle arbitrary repositories Stefan Beller
2018-02-05 23:55   ` [PATCH 057/194] replace-object: allow register_replace_object " Stefan Beller
2018-02-05 23:55   ` [PATCH 058/194] replace-object: add repository argument to prepare_replace_object Stefan Beller
2018-02-05 23:55   ` [PATCH 059/194] refs: store the main ref store inside the repository struct Stefan Beller
2018-02-06  4:27     ` Eric Sunshine
2018-02-06 18:01       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 060/194] refs: allow for_each_replace_ref to handle arbitrary repositories Stefan Beller
2018-02-05 23:55   ` [PATCH 061/194] replace-object: allow prepare_replace_object " Stefan Beller
2018-02-05 23:55   ` [PATCH 062/194] replace_object: allow do_lookup_replace_object " Stefan Beller
2018-02-05 23:55   ` [PATCH 063/194] replace-object: add repository argument to lookup_replace_object Stefan Beller
2018-02-05 23:55   ` [PATCH 064/194] repository: allow lookup_replace_object to handle arbitrary repositories Stefan Beller
2018-02-05 23:55   ` Stefan Beller [this message]
2018-02-06  1:55     ` [PATCH 065/194] object-store: add repository argument to sha1_object_info brian m. carlson
2018-02-05 23:55   ` [PATCH 066/194] pack: add repository argument to retry_bad_packed_offset Stefan Beller
2018-02-05 23:55   ` [PATCH 067/194] pack: add repository argument to packed_to_object_type Stefan Beller
2018-02-05 23:55   ` [PATCH 068/194] pack: add repository argument to packed_object_info Stefan Beller
2018-02-05 23:55   ` [PATCH 069/194] pack: add repository argument to find_pack_entry Stefan Beller
2018-02-05 23:55   ` [PATCH 070/194] packfile: add repository argument to read_object Stefan Beller
2018-02-05 23:55   ` [PATCH 071/194] packfile: add repository argument to unpack_entry Stefan Beller
2018-02-05 23:55   ` [PATCH 072/194] packfile: add repository argument to cache_or_unpack_entry Stefan Beller
2018-02-05 23:55   ` [PATCH 073/194] pack: allow find_pack_entry to handle arbitrary repositories Stefan Beller
2018-02-05 23:55   ` [PATCH 074/194] object-store: allow sha1_object_info " Stefan Beller
2018-02-05 23:55   ` [PATCH 075/194] fetch, push: do not use submodule as alternate in has_commits check Stefan Beller
2018-02-06  4:20     ` Eric Sunshine
2018-02-06 20:33       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 076/194] push: add test showing bad interaction of replace refs and submodules Stefan Beller
2018-02-06  2:20     ` brian m. carlson
2018-02-06 22:43       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 077/194] replace_object: allow register_replace_ref to handle arbitrary repositories Stefan Beller
2018-02-05 23:55   ` [PATCH 078/194] cache.h: migrate the definition of object_id to object.h Stefan Beller
2018-02-05 23:55   ` [PATCH 079/194] repository: introduce object parser field Stefan Beller
2018-02-05 23:55   ` [PATCH 080/194] object: add repository argument to parse_object Stefan Beller
2018-02-05 23:55   ` [PATCH 081/194] object: add repository argument to create_object Stefan Beller
2018-02-05 23:55   ` [PATCH 082/194] object: add repository argument to lookup_object Stefan Beller
2018-02-05 23:55   ` [PATCH 083/194] object: add repository argument to grow_object_hash Stefan Beller
2018-02-05 23:55   ` [PATCH 084/194] blob: add repository argument to lookup_blob Stefan Beller
2018-02-05 23:55   ` [PATCH 085/194] tree: add repository argument to lookup_tree Stefan Beller
2018-02-05 23:55   ` [PATCH 086/194] tag: add repository argument to lookup_tag Stefan Beller
2018-02-05 23:55   ` [PATCH 087/194] tag: add repository argument to parse_tag_buffer Stefan Beller
2018-02-05 23:55   ` [PATCH 088/194] tag: add repository argument to deref_tag Stefan Beller
2018-02-05 23:55   ` [PATCH 089/194] object: add repository argument to lookup_commit_reference_gently Stefan Beller
2018-02-05 23:55   ` [PATCH 090/194] object: add repository argument to lookup_commit_reference Stefan Beller
2018-02-05 23:55   ` [PATCH 091/194] object: add repository argument to lookup_commit Stefan Beller
2018-02-05 23:55   ` [PATCH 092/194] object: move grafts to object parser Stefan Beller
2018-02-06  4:07     ` Eric Sunshine
2018-02-06 18:04       ` Stefan Beller
2018-02-05 23:55   ` [PATCH 093/194] object: add repository argument to commit_graft_pos Stefan Beller
2018-02-05 23:55   ` [PATCH 094/194] commit: add repository argument to parse_commit_buffer Stefan Beller
2018-02-05 23:55   ` [PATCH 095/194] object: add repository argument to register_commit_graft Stefan Beller
2018-02-05 23:55   ` [PATCH 096/194] object: add repository argument to read_graft_file Stefan Beller
2018-02-05 23:55   ` [PATCH 097/194] object: add repository argument to prepare_commit_graft Stefan Beller
2018-02-05 23:55   ` [PATCH 098/194] object: add repository argument to lookup_commit_graft Stefan Beller
2018-02-06  0:16 ` [PATCH 099/194] object: allow grow_object_hash to handle arbitrary repositories Stefan Beller
2018-02-06  0:16   ` [PATCH 100/194] object: allow create_object " Stefan Beller
2018-02-06  0:16   ` [PATCH 101/194] object: allow lookup_object " Stefan Beller
2018-02-06  0:16   ` [PATCH 102/194] object: add repository argument to lookup_unknown_object Stefan Beller
2018-02-06  0:16   ` [PATCH 103/194] object: allow lookup_unknown_object to handle arbitrary repositories Stefan Beller
2018-02-06  0:16   ` [PATCH 104/194] object: add repository argument to parse_object_buffer Stefan Beller
2018-02-06  0:16   ` [PATCH 105/194] repository: keep track of all open repositories Stefan Beller
2018-02-06  0:16   ` [PATCH 106/194] Rename sha1_object_info.cocci to object_store.cocci Stefan Beller
2018-02-06  0:16   ` [PATCH 107/194] alternates: add repository argument to add_to_alternates_file Stefan Beller
2018-02-06  0:16   ` [PATCH 108/194] alternates: add repository argument to add_to_alternates_memory Stefan Beller
2018-02-06  0:16   ` [PATCH 109/194] object-store: move check_sha1_signature to object-store.h Stefan Beller
2018-02-06  0:16   ` [PATCH 110/194] object-store: add repository argument to check_sha1_signature Stefan Beller
2018-02-06  0:16   ` [PATCH 111/194] object-store: add repository argument to read_object Stefan Beller
2018-02-06  0:16   ` [PATCH 112/194] object-store: add repository argument to read_sha1_file_extended Stefan Beller
2018-02-06  0:16   ` [PATCH 113/194] object-store: add repository argument to read_sha1_file Stefan Beller
2018-02-06  0:16   ` [PATCH 114/194] object: move read_object_with_reference to object.h Stefan Beller
2018-02-06  0:16   ` [PATCH 115/194] packfile: add repository argument to has_packed_and_bad Stefan Beller
2018-02-06  0:16   ` [PATCH 116/194] packfile: allow has_packed_and_bad to handle arbitrary repositories Stefan Beller
2018-02-06  0:16   ` [PATCH 117/194] streaming: add repository argument to open_istream_fn Stefan Beller
2018-02-06  0:16   ` [PATCH 119/194] streaming: add repository argument to istream_source Stefan Beller
2018-02-06  0:16   ` [PATCH 120/194] streaming: allow istream_source to handle arbitrary repositories Stefan Beller
2018-02-06  0:16   ` [PATCH 121/194] sha1_file: allow read_object " Stefan Beller
2018-02-06  0:16   ` [PATCH 122/194] object-store.h: allow read_sha1_file{_extended} " Stefan Beller
2018-02-06  0:16   ` [PATCH 123/194] streaming: allow open_istream_incore " Stefan Beller
2018-02-06  0:16   ` [PATCH 124/194] streaming: allow open_istream_pack_non_delta " Stefan Beller
2018-02-06  0:16   ` [PATCH 125/194] streaming: allow open_istream_loose " Stefan Beller
2018-02-06  0:16   ` [PATCH 126/194] streaming: allow open_istream " Stefan Beller
2018-02-06  0:16   ` [PATCH 127/194] alternates: convert add_to_alternates_memory to handle arbitrary repos Stefan Beller
2018-02-06  0:16   ` [PATCH 128/194] object: add repository argument to object_as_type Stefan Beller
2018-02-06  0:16   ` [PATCH 129/194] alloc: add repository argument to alloc_blob_node Stefan Beller
2018-02-06  0:16   ` [PATCH 130/194] alloc: add repository argument to alloc_tree_node Stefan Beller
2018-02-06  0:16   ` [PATCH 131/194] alloc: add repository argument to alloc_commit_node Stefan Beller
2018-02-06  0:16   ` [PATCH 132/194] alloc: add repository argument to alloc_tag_node Stefan Beller
2018-02-06  0:16   ` [PATCH 133/194] alloc: add repository argument to alloc_object_node Stefan Beller
2018-02-06  0:16   ` [PATCH 134/194] alloc: add repository argument to alloc_report Stefan Beller
2018-02-06  0:16   ` [PATCH 135/194] alloc: add repository argument to alloc_commit_index Stefan Beller
2018-02-06  0:16   ` [PATCH 136/194] alloc: allow arbitrary repositories for alloc functions Stefan Beller
2018-02-06  3:35     ` Eric Sunshine
2018-02-06  0:16   ` [PATCH 137/194] object: allow object_as_type to handle arbitrary repositories Stefan Beller
2018-02-06  0:16   ` [PATCH 138/194] commit: allow lookup_commit " Stefan Beller
2018-02-06  0:16   ` [PATCH 139/194] sha1_file: allow add_to_alternates_file " Stefan Beller
2018-02-06  0:16   ` [PATCH 140/194] commit: convert commit_graft_pos() " Stefan Beller
2018-02-06  0:16   ` [PATCH 141/194] commit: convert register_commit_graft " Stefan Beller
2018-02-06  0:16   ` [PATCH 142/194] commit: convert read_graft_file " Stefan Beller
2018-02-06  0:16   ` [PATCH 143/194] object: add repository argument to parse_commit_gently Stefan Beller
2018-02-06  0:16   ` [PATCH 144/194] commit: add repository argument to parse_commit Stefan Beller
2018-02-06  0:17   ` [PATCH 145/194] commit: add repository argument to set_commit_buffer Stefan Beller
2018-02-06  0:17   ` [PATCH 146/194] commit: add repository argument to get_cached_commit_buffer Stefan Beller
2018-02-06  0:17   ` [PATCH 147/194] commit: add repository argument to unuse_commit_buffer Stefan Beller
2018-02-06  0:17   ` [PATCH 148/194] commit: add repository argument to free_commit_buffer Stefan Beller
2018-02-06  0:17   ` [PATCH 149/194] commit: allow commit buffer functions to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 150/194] tree: allow lookup_tree " Stefan Beller
2018-02-06  0:17   ` [PATCH 151/194] cache: convert get_graft_file " Stefan Beller
2018-02-06  0:17   ` [PATCH 152/194] shallow: add repository argument to set_alternate_shallow_file Stefan Beller
2018-02-06  0:17   ` [PATCH 153/194] shallow: add repository argument to register_shallow Stefan Beller
2018-02-06  0:17   ` [PATCH 154/194] shallow: add repository argument to check_shallow_file_for_update Stefan Beller
2018-02-06  0:17   ` [PATCH 155/194] shallow: add repository argument to is_repository_shallow Stefan Beller
2018-02-06  0:17   ` [PATCH 156/194] migrate cached path to use the_repository Stefan Beller
2018-02-06  0:17   ` [PATCH 157/194] shallow: migrate shallow information into the object parser Stefan Beller
2018-02-06  0:17   ` [PATCH 158/194] commit: allow prepare_commit_graft to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 159/194] commit: allow lookup_commit_graft " Stefan Beller
2018-02-06  0:17   ` [PATCH 160/194] commit: allow arbitrary repository argument for parse_commit_buffer Stefan Beller
2018-02-06  0:17   ` [PATCH 161/194] commit: allow parse_commit_gently to handle arbitrary repository Stefan Beller
2018-02-06  0:17   ` [PATCH 162/194] commit: add repository argument to get_merge_bases_many_0 Stefan Beller
2018-02-06  0:17   ` [PATCH 163/194] commit: add repository argument to merge_bases_many Stefan Beller
2018-02-06  0:17   ` [PATCH 164/194] commit: add repository argument to paint_down_to_common Stefan Beller
2018-02-06  0:17   ` [PATCH 165/194] commit: allow parse_commit to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 166/194] commit: allow paint_down_to_common " Stefan Beller
2018-02-06  0:17   ` [PATCH 167/194] commit: allow merge_bases_many " Stefan Beller
2018-02-06  0:17   ` [PATCH 168/194] commit: add repository argument to remove_redundant Stefan Beller
2018-02-06  0:17   ` [PATCH 169/194] commit: allow remove_redundant to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 170/194] commit: allow get_merge_bases_many_0 " Stefan Beller
2018-02-06  0:17   ` [PATCH 171/194] commit: add repository argument to get_merge_bases Stefan Beller
2018-02-06  0:17   ` [PATCH 172/194] commit: allow get_merge_bases to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 173/194] blob: allow lookup_blob " Stefan Beller
2018-02-06  0:17   ` [PATCH 174/194] tag: allow lookup_tag " Stefan Beller
2018-02-06  0:17   ` [PATCH 175/194] tag: allow parse_tag_buffer " Stefan Beller
2018-02-06  0:17   ` [PATCH 176/194] object: allow parse_object_buffer " Stefan Beller
2018-02-06  0:17   ` [PATCH 177/194] objects: allow check_sha1_signature " Stefan Beller
2018-02-06  0:17   ` [PATCH 178/194] object: allow parse_object " Stefan Beller
2018-02-06  0:17   ` [PATCH 179/194] tag: allow deref_tag " Stefan Beller
2018-02-06  0:17   ` [PATCH 180/194] commit: allow lookup_commit_reference_gently " Stefan Beller
2018-02-06  0:17   ` [PATCH 181/194] commit: allow lookup_commit_reference " Stefan Beller
2018-02-06  0:17   ` [PATCH 182/194] commit: add repository argument to get_commit_buffer Stefan Beller
2018-02-06  0:17   ` [PATCH 183/194] commit: add repository argument to logmsg_reencode Stefan Beller
2018-02-06  0:17   ` [PATCH 184/194] pretty: add repository argument to format_commit_message Stefan Beller
2018-02-06  0:17   ` [PATCH 185/194] commit: allow get_commit_buffer to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 186/194] pretty: allow logmsg_reencode " Stefan Beller
2018-02-06  0:17   ` [PATCH 187/194] commit: add repository argument to in_merge_bases_many Stefan Beller
2018-02-06  0:17   ` [PATCH 188/194] commit: add repository argument to in_merge_bases Stefan Beller
2018-02-06  0:17   ` [PATCH 189/194] commit: allow in_merge_bases_many to handle arbitrary repositories Stefan Beller
2018-02-06  0:17   ` [PATCH 190/194] commit: allow in_merge_bases " Stefan Beller
2018-02-06  0:17   ` [PATCH 191/194] pretty: allow format_commit_message " Stefan Beller
2018-02-06  0:17   ` [PATCH 192/194] submodule: add repository argument to print_submodule_summary Stefan Beller
2018-02-06  0:17   ` [PATCH 193/194] submodule: Reorder open_submodule function Stefan Beller
2018-02-06  0:17   ` [PATCH 194/194] submodule: use submodule repos for object lookup Stefan Beller
2018-02-06  0:54 ` [RFC PATCH 000/194] Moving global state into the repository object Stefan Beller
2018-02-06  3:32 ` brian m. carlson
2018-02-06 20:25 ` Stefan Beller
2018-02-06 23:46   ` Stefan Beller
2018-02-07  9:54   ` Eric Sunshine
2018-02-07 11:48 ` Duy Nguyen
2018-02-07 18:06   ` Stefan Beller
2018-02-10 10:36     ` Duy Nguyen
2018-02-07 16:39 ` Jeff Hostetler
2018-02-08 15:42 ` Elijah Newren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180205235735.216710-45-sbeller@google.com \
    --to=sbeller@google.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).