diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2021-05-14 00:33:08 +0100 |
|---|---|---|
| committer | Edward Thomson <ethomson@edwardthomson.com> | 2021-08-27 11:26:49 -0400 |
| commit | 672406773e677e69dba0ccf1c6a116cb2886b60a (patch) | |
| tree | 302c2bfaa92cc99f3980eb245bc37329d48c9285 /include/git2 | |
| parent | 45489a119467964b641515735b216a1eff12dd6d (diff) | |
| download | libgit2-672406773e677e69dba0ccf1c6a116cb2886b60a.tar.gz | |
remote: introduce set_instance_url
Users may want to override the URL on a particular instance of a remote,
instead of updating the configuration. Previously, users could use a
callback to do this, but this is not particularly idiomatic.
Diffstat (limited to 'include/git2')
| -rw-r--r-- | include/git2/remote.h | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/include/git2/remote.h b/include/git2/remote.h index 5d7a5367d..5b67717eb 100644 --- a/include/git2/remote.h +++ b/include/git2/remote.h @@ -212,7 +212,8 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote); * Get the remote's url * * If url.*.insteadOf has been configured for this URL, it will - * return the modified URL. + * return the modified URL. If `git_remote_set_instance_pushurl` + * has been called for this remote, then that URL will be returned. * * @param remote the remote * @return a pointer to the url @@ -220,10 +221,11 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote); GIT_EXTERN(const char *) git_remote_url(const git_remote *remote); /** - * Get the remote's url for pushing + * Get the remote's url for pushing. * * If url.*.pushInsteadOf has been configured for this URL, it - * will return the modified URL. + * will return the modified URL. If `git_remote_set_instance_pushurl` + * has been called for this remote, then that URL will be returned. * * @param remote the remote * @return a pointer to the url or NULL if no special url for pushing is set @@ -258,6 +260,26 @@ GIT_EXTERN(int) git_remote_set_url(git_repository *repo, const char *remote, con GIT_EXTERN(int) git_remote_set_pushurl(git_repository *repo, const char *remote, const char* url); /** + * Set the url for this particular url instance. The URL in the + * configuration will be ignored, and will not be changed. + * + * @param remote the remote's name + * @param url the url to set + * @return 0 or an error value + */ +GIT_EXTERN(int) git_remote_set_instance_url(git_remote *remote, const char *url); + +/** + * Set the push url for this particular url instance. The URL in the + * configuration will be ignored, and will not be changed. + * + * @param remote the remote's name + * @param url the url to set + * @return 0 or an error value + */ +GIT_EXTERN(int) git_remote_set_instance_pushurl(git_remote *remote, const char *url); + +/** * Add a fetch refspec to the remote's configuration * * Add the given refspec to the fetch list in the configuration. No |
