Merge branch 'fg/submodule-ff-check-before-push'
* fg/submodule-ff-check-before-push: push: Don't push a repository with unpushed submodules
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
#include "refs.h"
|
||||
#include "branch.h"
|
||||
#include "url.h"
|
||||
#include "submodule.h"
|
||||
|
||||
/* rsync support */
|
||||
|
||||
@ -1045,6 +1046,14 @@ int transport_push(struct transport *transport,
|
||||
flags & TRANSPORT_PUSH_MIRROR,
|
||||
flags & TRANSPORT_PUSH_FORCE);
|
||||
|
||||
if ((flags & TRANSPORT_RECURSE_SUBMODULES_CHECK) && !is_bare_repository()) {
|
||||
struct ref *ref = remote_refs;
|
||||
for (; ref; ref = ref->next)
|
||||
if (!is_null_sha1(ref->new_sha1) &&
|
||||
check_submodule_needs_pushing(ref->new_sha1,transport->remote->name))
|
||||
die("There are unpushed submodules, aborting.");
|
||||
}
|
||||
|
||||
push_ret = transport->push_refs(transport, remote_refs, flags);
|
||||
err = push_had_errors(remote_refs);
|
||||
ret = push_ret | err;
|
||||
|
Reference in New Issue
Block a user