--- v2
+++ v3
@@ -1,4 +1,4 @@
-remote.c does not work with non-the_repository because it stores its
+remote.c does not works with non-the_repository because it stores its
state as static variables. To support non-the_repository, we can use a
per-repository struct for the remotes subsystem.
@@ -340,7 +340,7 @@
+ remote_state->branches_nr = 0;
+}
diff --git a/remote.h b/remote.h
-index 5a59198252..184d14af3d 100644
+index 5a59198252..d21c035f1b 100644
--- a/remote.h
+++ b/remote.h
@@ -23,6 +23,40 @@ enum {
@@ -354,6 +354,7 @@
+ int instead_of_nr;
+ int instead_of_alloc;
+};
++
+struct rewrites {
+ struct rewrite **rewrite;
+ int rewrite_alloc;
@@ -361,8 +362,6 @@
+};
+
+struct remote_state {
-+ int config_loaded;
-+
+ struct remote **remotes;
+ int remotes_alloc;
+ int remotes_nr;
@@ -378,6 +377,7 @@
+ struct rewrites rewrites;
+ struct rewrites rewrites_push;
+};
++
+void remote_state_clear(struct remote_state *remote_state);
+struct remote_state *remote_state_new(void);
+
@@ -447,5 +447,5 @@
const struct git_hash_algo *hash_algo;
--
-2.33.0.882.g93a45727a2-goog
+2.33.GIT