While fixing that 'git remote rename X Y' does not rename the values for 'branch.*.pushRemote', it opened the possibility to more improvements in this area: - 'remote rename' did not accept single-letter abbreviations for 'branch.*.rebase' like 'pull --rebase' does - minor clean-ups the config callback - patch 5 will be replaced by/rebased on Matthew's work in 'config: allow user to know scope of config options', once 'config_scope_name' is available - gently handling the rename of 'remote.pushDefault' Changes since v1: * avoid mixed declarations and statements * 'git remote remove' learned similar treatment Bert Wesarg (7): pull --rebase/remote rename: document and honor single-letter abbreviations rebase types remote: clean-up by returning early to avoid one indentation remote: clean-up config callback remote rename/remove: handle branch.<name>.pushRemote config values [RFC] config: make `scope_name` global as `config_scope_name` config: provide access to the current line number remote rename/remove: gently handle remote.pushDefault config Documentation/config/branch.txt | 7 +- Documentation/config/pull.txt | 7 +- Makefile | 1 + builtin/pull.c | 29 +---- builtin/remote.c | 188 ++++++++++++++++++++++---------- config.c | 24 ++++ config.h | 2 + rebase.c | 35 ++++++ rebase.h | 15 +++ t/helper/test-config.c | 18 +-- t/t1308-config-set.sh | 14 ++- t/t5505-remote.sh | 88 ++++++++++++++- 12 files changed, 322 insertions(+), 106 deletions(-) create mode 100644 rebase.c create mode 100644 rebase.h -- 2.24.1.497.g9abd7b20b4.dirty