Merge branch 'bc/push-cas-cquoted-refname' into master
Pushing a ref whose name contains non-ASCII character with the "--force-with-lease" option did not work over smart HTTP protocol, which has been corrected. * bc/push-cas-cquoted-refname: remote-curl: make --force-with-lease work with non-ASCII ref names
This commit is contained in:
commit
c2796ac1c2
@ -121,7 +121,11 @@ static int set_option(const char *name, const char *value)
|
||||
}
|
||||
else if (!strcmp(name, "cas")) {
|
||||
struct strbuf val = STRBUF_INIT;
|
||||
strbuf_addf(&val, "--" CAS_OPT_NAME "=%s", value);
|
||||
strbuf_addstr(&val, "--force-with-lease=");
|
||||
if (*value != '"')
|
||||
strbuf_addstr(&val, value);
|
||||
else if (unquote_c_style(&val, value, NULL))
|
||||
return -1;
|
||||
string_list_append(&cas_options, val.buf);
|
||||
strbuf_release(&val);
|
||||
return 0;
|
||||
|
@ -479,6 +479,21 @@ test_expect_success 'clone/fetch scrubs password from reflogs' '
|
||||
! grep "$HTTPD_URL_USER_PASS" reflog
|
||||
'
|
||||
|
||||
test_expect_success 'Non-ASCII branch name can be used with --force-with-lease' '
|
||||
cd "$ROOT_PATH" &&
|
||||
git clone "$HTTPD_URL_USER_PASS/smart/test_repo.git" non-ascii &&
|
||||
cd non-ascii &&
|
||||
git checkout -b rama-de-árbol &&
|
||||
test_commit F &&
|
||||
git push --force-with-lease origin rama-de-árbol &&
|
||||
git ls-remote origin refs/heads/rama-de-árbol >actual &&
|
||||
git ls-remote . refs/heads/rama-de-árbol >expect &&
|
||||
test_cmp expect actual &&
|
||||
git push --delete --force-with-lease origin rama-de-árbol &&
|
||||
git ls-remote origin refs/heads/rama-de-árbol >actual &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'colorize errors/hints' '
|
||||
cd "$ROOT_PATH"/test_repo_clone &&
|
||||
test_must_fail git -c color.transport=always -c color.advice=always \
|
||||
|
Loading…
Reference in New Issue
Block a user