push: Don't push a repository with unpushed submodules
authorFredrik Gustafsson <iveqy@iveqy.com>
Fri, 19 Aug 2011 22:08:47 +0000 (00:08 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 21 Aug 2011 06:03:52 +0000 (23:03 -0700)
commitd2b17b3220cbd75b1c8e2aa6cfdc5c121749c97d
tree730f2d49512177c59d02ce03666d727b2d88dbd6
parent25e5e2bf85c8a2c2c8945935267539940c11020d
push: Don't push a repository with unpushed submodules

When working with submodules it is easy to forget to push a
submodule to the server but pushing a super-project that
contains a commit for that submodule. The result is that the
superproject points at a submodule commit that is not available
on the server.

This adds the option --recurse-submodules=check to push. When
using this option git will check that all submodule commits that
are about to be pushed are present on a remote of the submodule.

To be able to use a combined diff, disabling a diff callback has
been removed from combined-diff.c.

Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com>
Mentored-by: Jens Lehmann <Jens.Lehmann@web.de>
Mentored-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-push.txt
builtin/push.c
submodule.c
submodule.h
t/t5531-deep-submodule-push.sh
transport.c
transport.h