While trying to understand how the recursive pushing of submodules worked I discovered that when push was instructed to do a dry-run, while also configured to push unpushed submodules 'on-demand', that the submodule pushes weren't configured to perform dry-runs, but actually performed the pushes. This resulted in the submodules being pushed while leaving the superproject unpushed which is undesirable behavior for a dry-run. This series introduces a test to illustrate the bug as well as a patch to correct this behavior by passing the --dry-run flag to the child processes which perform the submodule pushes during a dry-run. This series is based against 'origin/hv/submodule-not-yet-pushed-fix' Brandon Williams (2): push: --dry-run updates submodules when --recurse-submodules=on-demand push: fix --dry-run to not push submodules submodule.c | 13 ++++++++----- submodule.h | 4 +++- t/t5531-deep-submodule-push.sh | 26 +++++++++++++++++++++++++- transport.c | 9 ++++++--- 4 files changed, 42 insertions(+), 10 deletions(-) -- 2.8.0.rc3.226.g39d4020