Merge branch 'cb/receive-pack-keep-errors' into maint
* cb/receive-pack-keep-errors: do not override receive-pack errors
This commit is contained in:
commit
e147e9693a
@ -642,8 +642,10 @@ static void check_aliased_updates(struct command *commands)
|
||||
}
|
||||
sort_string_list(&ref_list);
|
||||
|
||||
for (cmd = commands; cmd; cmd = cmd->next)
|
||||
check_aliased_update(cmd, &ref_list);
|
||||
for (cmd = commands; cmd; cmd = cmd->next) {
|
||||
if (!cmd->error_string)
|
||||
check_aliased_update(cmd, &ref_list);
|
||||
}
|
||||
|
||||
string_list_clear(&ref_list, 0);
|
||||
}
|
||||
@ -707,8 +709,10 @@ static void execute_commands(struct command *commands, const char *unpacker_erro
|
||||
set_connectivity_errors(commands);
|
||||
|
||||
if (run_receive_hook(commands, pre_receive_hook, 0)) {
|
||||
for (cmd = commands; cmd; cmd = cmd->next)
|
||||
cmd->error_string = "pre-receive hook declined";
|
||||
for (cmd = commands; cmd; cmd = cmd->next) {
|
||||
if (!cmd->error_string)
|
||||
cmd->error_string = "pre-receive hook declined";
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -717,9 +721,15 @@ static void execute_commands(struct command *commands, const char *unpacker_erro
|
||||
free(head_name_to_free);
|
||||
head_name = head_name_to_free = resolve_refdup("HEAD", sha1, 0, NULL);
|
||||
|
||||
for (cmd = commands; cmd; cmd = cmd->next)
|
||||
if (!cmd->skip_update)
|
||||
cmd->error_string = update(cmd);
|
||||
for (cmd = commands; cmd; cmd = cmd->next) {
|
||||
if (cmd->error_string)
|
||||
continue;
|
||||
|
||||
if (cmd->skip_update)
|
||||
continue;
|
||||
|
||||
cmd->error_string = update(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
static struct command *read_head_info(void)
|
||||
|
@ -58,6 +58,11 @@ test_expect_success 'fetch with transfer.fsckobjects' '
|
||||
)
|
||||
'
|
||||
|
||||
cat >exp <<EOF
|
||||
To dst
|
||||
! refs/heads/master:refs/heads/test [remote rejected] (missing necessary objects)
|
||||
EOF
|
||||
|
||||
test_expect_success 'push without strict' '
|
||||
rm -rf dst &&
|
||||
git init dst &&
|
||||
@ -66,7 +71,8 @@ test_expect_success 'push without strict' '
|
||||
git config fetch.fsckobjects false &&
|
||||
git config transfer.fsckobjects false
|
||||
) &&
|
||||
git push dst master:refs/heads/test
|
||||
test_must_fail git push --porcelain dst master:refs/heads/test >act &&
|
||||
test_cmp exp act
|
||||
'
|
||||
|
||||
test_expect_success 'push with !receive.fsckobjects' '
|
||||
@ -77,9 +83,15 @@ test_expect_success 'push with !receive.fsckobjects' '
|
||||
git config receive.fsckobjects false &&
|
||||
git config transfer.fsckobjects true
|
||||
) &&
|
||||
git push dst master:refs/heads/test
|
||||
test_must_fail git push --porcelain dst master:refs/heads/test >act &&
|
||||
test_cmp exp act
|
||||
'
|
||||
|
||||
cat >exp <<EOF
|
||||
To dst
|
||||
! refs/heads/master:refs/heads/test [remote rejected] (n/a (unpacker error))
|
||||
EOF
|
||||
|
||||
test_expect_success 'push with receive.fsckobjects' '
|
||||
rm -rf dst &&
|
||||
git init dst &&
|
||||
@ -88,7 +100,8 @@ test_expect_success 'push with receive.fsckobjects' '
|
||||
git config receive.fsckobjects true &&
|
||||
git config transfer.fsckobjects false
|
||||
) &&
|
||||
test_must_fail git push dst master:refs/heads/test
|
||||
test_must_fail git push --porcelain dst master:refs/heads/test >act &&
|
||||
test_cmp exp act
|
||||
'
|
||||
|
||||
test_expect_success 'push with transfer.fsckobjects' '
|
||||
@ -98,7 +111,8 @@ test_expect_success 'push with transfer.fsckobjects' '
|
||||
cd dst &&
|
||||
git config transfer.fsckobjects true
|
||||
) &&
|
||||
test_must_fail git push dst master:refs/heads/test
|
||||
test_must_fail git push --porcelain dst master:refs/heads/test >act &&
|
||||
test_cmp exp act
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user