diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-04-22 11:14:43 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-04-22 11:14:43 +0900 |
commit | e36adf712251a19bd2ada0016764d340dfcf2ba0 (patch) | |
tree | 0b58e0a8e315bb737fdcdb16cf8f30d262025f76 /ident.c | |
parent | ffac537e6cbbf934b08745a378932722df287a53 (diff) | |
parent | 7906af0cb84c8e65656347909abd4e22b04d1c1e (diff) | |
download | git-e36adf712251a19bd2ada0016764d340dfcf2ba0.tar.gz |
Merge branch 'ps/stash-in-c'
"git stash" rewritten in C.
* ps/stash-in-c: (28 commits)
tests: add a special setup where stash.useBuiltin is off
stash: optionally use the scripted version again
stash: add back the original, scripted `git stash`
stash: convert `stash--helper.c` into `stash.c`
stash: replace all `write-tree` child processes with API calls
stash: optimize `get_untracked_files()` and `check_changes()`
stash: convert save to builtin
stash: make push -q quiet
stash: convert push to builtin
stash: convert create to builtin
stash: convert store to builtin
stash: convert show to builtin
stash: convert list to builtin
stash: convert pop to builtin
stash: convert branch to builtin
stash: convert drop and clear to builtin
stash: convert apply to builtin
stash: mention options in `show` synopsis
stash: add tests for `git stash show` config
stash: rename test cases to be more descriptive
...
Diffstat (limited to 'ident.c')
-rw-r--r-- | ident.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -585,6 +585,26 @@ int git_ident_config(const char *var, const char *value, void *data) return set_ident(var, value); } +static void set_env_if(const char *key, const char *value, int *given, int bit) +{ + if ((*given & bit) || getenv(key)) + return; /* nothing to do */ + setenv(key, value, 0); + *given |= bit; +} + +void prepare_fallback_ident(const char *name, const char *email) +{ + set_env_if("GIT_AUTHOR_NAME", name, + &author_ident_explicitly_given, IDENT_NAME_GIVEN); + set_env_if("GIT_AUTHOR_EMAIL", email, + &author_ident_explicitly_given, IDENT_MAIL_GIVEN); + set_env_if("GIT_COMMITTER_NAME", name, + &committer_ident_explicitly_given, IDENT_NAME_GIVEN); + set_env_if("GIT_COMMITTER_EMAIL", email, + &committer_ident_explicitly_given, IDENT_MAIL_GIVEN); +} + static int buf_cmp(const char *a_begin, const char *a_end, const char *b_begin, const char *b_end) { |