mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
remote: move static variables into per-repository struct
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. Prepare for this change by defining a struct remote_state that holds the remotes subsystem state and move the static variables of remote.c into the_repository->remote_state. This introduces no behavioral or API changes. Signed-off-by: Glen Choo <chooglen@google.com> Reviewed-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
e083ef5d54
commit
fd3cb0501e
34
remote.h
34
remote.h
@@ -23,6 +23,40 @@ enum {
|
||||
REMOTE_BRANCHES
|
||||
};
|
||||
|
||||
struct rewrite {
|
||||
const char *base;
|
||||
size_t baselen;
|
||||
struct counted_string *instead_of;
|
||||
int instead_of_nr;
|
||||
int instead_of_alloc;
|
||||
};
|
||||
|
||||
struct rewrites {
|
||||
struct rewrite **rewrite;
|
||||
int rewrite_alloc;
|
||||
int rewrite_nr;
|
||||
};
|
||||
|
||||
struct remote_state {
|
||||
struct remote **remotes;
|
||||
int remotes_alloc;
|
||||
int remotes_nr;
|
||||
struct hashmap remotes_hash;
|
||||
|
||||
struct branch **branches;
|
||||
int branches_alloc;
|
||||
int branches_nr;
|
||||
|
||||
struct branch *current_branch;
|
||||
const char *pushremote_name;
|
||||
|
||||
struct rewrites rewrites;
|
||||
struct rewrites rewrites_push;
|
||||
};
|
||||
|
||||
void remote_state_clear(struct remote_state *remote_state);
|
||||
struct remote_state *remote_state_new(void);
|
||||
|
||||
struct remote {
|
||||
struct hashmap_entry ent;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user