diff options
| author | Stefan Beller <sbeller@google.com> | 2016-07-28 17:44:07 -0700 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2016-08-01 14:42:07 -0700 | 
| commit | b5944f3476dbaee15649b0fa02b2b35aaa149dc3 (patch) | |
| tree | a8ff78ce512ce89c3723455329bd0064642697c7 | |
| parent | 2de26ae1dc89236ff5d0d0657b0eb884b6c331b5 (diff) | |
| download | git-b5944f3476dbaee15649b0fa02b2b35aaa149dc3.tar.gz | |
submodule-config: keep configured branch around
The branch field will be used in a later patch by `submodule update`.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | submodule-config.c | 11 | ||||
| -rw-r--r-- | submodule-config.h | 1 | 
2 files changed, 11 insertions, 1 deletions
diff --git a/submodule-config.c b/submodule-config.c index 077db4054f..ebee1e4795 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -59,6 +59,7 @@ static void free_one_config(struct submodule_entry *entry)  {  	free((void *) entry->config->path);  	free((void *) entry->config->name); +	free((void *) entry->config->branch);  	free((void *) entry->config->update_strategy.command);  	free(entry->config);  } @@ -199,6 +200,7 @@ static struct submodule *lookup_or_create_by_name(struct submodule_cache *cache,  	submodule->update_strategy.command = NULL;  	submodule->fetch_recurse = RECURSE_SUBMODULES_NONE;  	submodule->ignore = NULL; +	submodule->branch = NULL;  	submodule->recommend_shallow = -1;  	hashcpy(submodule->gitmodules_sha1, gitmodules_sha1); @@ -358,9 +360,16 @@ static int parse_config(const char *var, const char *value, void *data)  		if (!me->overwrite && submodule->recommend_shallow != -1)  			warn_multiple_config(me->commit_sha1, submodule->name,  					     "shallow"); -		else { +		else  			submodule->recommend_shallow =  				git_config_bool(var, value); +	} else if (!strcmp(item.buf, "branch")) { +		if (!me->overwrite && submodule->branch) +			warn_multiple_config(me->commit_sha1, submodule->name, +					     "branch"); +		else { +			free((void *)submodule->branch); +			submodule->branch = xstrdup(value);  		}  	} diff --git a/submodule-config.h b/submodule-config.h index b1fdcc0c33..d05c542d2c 100644 --- a/submodule-config.h +++ b/submodule-config.h @@ -15,6 +15,7 @@ struct submodule {  	const char *url;  	int fetch_recurse;  	const char *ignore; +	const char *branch;  	struct submodule_update_strategy update_strategy;  	/* the sha1 blob id of the responsible .gitmodules file */  	unsigned char gitmodules_sha1[20];  | 
