Tired of jumping through hoops trying to understand what the "simple" mode does, I decided to reorganize it up for good so it's crystal clear. There are no functional changes. Basically the simple mode pushes the current branch with the same name on the remote. Except... when there's no upstream branch configured with the same name. Now the code and the documentation are clear. This has the additional advantage of making `current` based on `simple`, rather than the other way around; `current` is basically `simple` but assuming we are never in a centralized workflow. Felipe Contreras (11): push: hedge code of default=simple push: move code to setup_push_simple() push: reorganize setup_push_simple() push: simplify setup_push_simple() push: remove unused code in setup_push_upstream() push: merge current and simple push: remove redundant check push: fix Yoda condition push: remove trivial function push: flip !triangular for centralized doc: push: explain default=simple correctly Documentation/config/push.txt | 13 +++++----- builtin/push.c | 47 +++++++++++++++++++---------------- 2 files changed, 31 insertions(+), 29 deletions(-) -- 2.32.0.rc0