diff options
| author | Junio C Hamano <gitster@pobox.com> | 2020-02-25 11:18:32 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2020-02-25 11:18:32 -0800 |
| commit | d0038f4b31d6ab1f0602a4d3c19e35c5004175fa (patch) | |
| tree | 2b67cde99b211b34335e838515690896794c6d75 /rebase.c | |
| parent | 51ebf55b9309824346a6589c9f3b130c6f371b8f (diff) | |
| parent | b3fd6cbf29435f8b49a0a5d9f86236e00b084624 (diff) | |
| download | git-d0038f4b31d6ab1f0602a4d3c19e35c5004175fa.tar.xz | |
Merge branch 'bw/remote-rename-update-config'
"git remote rename X Y" needs to adjust configuration variables
(e.g. branch.<name>.remote) whose value used to be X to Y.
branch.<name>.pushRemote is now also updated.
* bw/remote-rename-update-config:
remote rename/remove: gently handle remote.pushDefault config
config: provide access to the current line number
remote rename/remove: handle branch.<name>.pushRemote config values
remote: clean-up config callback
remote: clean-up by returning early to avoid one indentation
pull --rebase/remote rename: document and honor single-letter abbreviations rebase types
Diffstat (limited to 'rebase.c')
| -rw-r--r-- | rebase.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/rebase.c b/rebase.c new file mode 100644 index 0000000000..f8137d859b --- /dev/null +++ b/rebase.c @@ -0,0 +1,35 @@ +#include "rebase.h" +#include "config.h" + +/* + * Parses textual value for pull.rebase, branch.<name>.rebase, etc. + * Unrecognised value yields REBASE_INVALID, which traditionally is + * treated the same way as REBASE_FALSE. + * + * The callers that care if (any) rebase is requested should say + * if (REBASE_TRUE <= rebase_parse_value(string)) + * + * The callers that want to differenciate an unrecognised value and + * false can do so by treating _INVALID and _FALSE differently. + */ +enum rebase_type rebase_parse_value(const char *value) +{ + int v = git_parse_maybe_bool(value); + + if (!v) + return REBASE_FALSE; + else if (v > 0) + return REBASE_TRUE; + else if (!strcmp(value, "preserve") || !strcmp(value, "p")) + return REBASE_PRESERVE; + else if (!strcmp(value, "merges") || !strcmp(value, "m")) + return REBASE_MERGES; + else if (!strcmp(value, "interactive") || !strcmp(value, "i")) + return REBASE_INTERACTIVE; + /* + * Please update _git_config() in git-completion.bash when you + * add new rebase modes. + */ + + return REBASE_INVALID; +} |
