| #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; | |
| } |