diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2015-04-17 12:35:41 -0500 |
|---|---|---|
| committer | Edward Thomson <ethomson@edwardthomson.com> | 2015-04-17 12:35:41 -0500 |
| commit | a0e652d281dd2152d333675b25aa37307496e039 (patch) | |
| tree | 429272b8d7f81f5df502fc4faaef36be5c7c2638 /src | |
| parent | a5bf599c9d2bd934823fbd99e73d6378289e5dfb (diff) | |
| parent | 129788a623816e06eb502235451beeb87472cee0 (diff) | |
| download | libgit2-a0e652d281dd2152d333675b25aa37307496e039.tar.gz | |
Merge pull request #2999 from pks-t/submodule-set-url
Implement git_submodule_set_branch.
Diffstat (limited to 'src')
| -rw-r--r-- | src/submodule.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/submodule.c b/src/submodule.c index c3bb6fe0e..d24a7773a 100644 --- a/src/submodule.c +++ b/src/submodule.c @@ -628,8 +628,17 @@ int git_submodule_save(git_submodule *submodule) (error = git_config_file_set_string(mods, key.ptr, submodule->url)) < 0) goto cleanup; - if ((error = submodule_config_key_trunc_puts(&key, "branch")) < 0 || - (error = git_config_file_set_string(mods, key.ptr, submodule->branch)) < 0) + if ((error = submodule_config_key_trunc_puts(&key, "branch")) < 0) + goto cleanup; + if (submodule->branch == NULL) + error = git_config_file_delete(mods, key.ptr); + else + error = git_config_file_set_string(mods, key.ptr, submodule->branch); + if (error == GIT_ENOTFOUND) { + error = 0; + giterr_clear(); + } + if (error < 0) goto cleanup; if (!(error = submodule_config_key_trunc_puts(&key, "update")) && @@ -715,6 +724,21 @@ const char *git_submodule_branch(git_submodule *submodule) return submodule->branch; } +int git_submodule_set_branch(git_submodule *submodule, const char *branch) +{ + assert(submodule); + + git__free(submodule->branch); + submodule->branch = NULL; + + if (branch != NULL) { + submodule->branch = git__strdup(branch); + GITERR_CHECK_ALLOC(submodule->branch); + } + + return 0; +} + int git_submodule_set_url(git_submodule *submodule, const char *url) { assert(submodule && url); |
