diff options
| author | Vicent Martà <vicent@github.com> | 2013-11-14 07:21:47 -0800 |
|---|---|---|
| committer | Vicent Martà <vicent@github.com> | 2013-11-14 07:21:47 -0800 |
| commit | 7b947bf5cc59eefa83c28eb5f5fd8434207ebb8b (patch) | |
| tree | e3158d9445263156684b0e78ea991778ec9b92ea /src/remote.c | |
| parent | 98eaf39a87164eeb284df5c0239c3a31dfb538e7 (diff) | |
| parent | 886cc447389da78885a909a96b43ddbe67c9807f (diff) | |
| download | libgit2-7b947bf5cc59eefa83c28eb5f5fd8434207ebb8b.tar.gz | |
Merge pull request #1951 from victorgp/create-remote-plus-fetch
Allowing create remotes with custom fetch spec
Diffstat (limited to 'src/remote.c')
| -rw-r--r-- | src/remote.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/remote.c b/src/remote.c index 62f297a7e..c0f35e5ea 100644 --- a/src/remote.c +++ b/src/remote.c @@ -209,6 +209,36 @@ on_error: return -1; } +int git_remote_create_with_fetchspec(git_remote **out, git_repository *repo, const char *name, const char *url, const char *fetch) +{ + git_buf buf = GIT_BUF_INIT; + git_remote *remote = NULL; + int error; + + if ((error = ensure_remote_name_is_valid(name)) < 0) + return error; + + if ((error = ensure_remote_doesnot_exist(repo, name)) < 0) + return error; + + if (create_internal(&remote, repo, name, url, fetch) < 0) + goto on_error; + + git_buf_free(&buf); + + if (git_remote_save(remote) < 0) + goto on_error; + + *out = remote; + + return 0; + +on_error: + git_buf_free(&buf); + git_remote_free(remote); + return -1; +} + int git_remote_create_inmemory(git_remote **out, git_repository *repo, const char *fetch, const char *url) { int error; |
