Merge branch 'jk/push-scrub-url' into maint

"git fetch http://user:pass@host/repo..." scrubbed the userinfo
part, but "git push" didn't.

* jk/push-scrub-url:
  t5541: fix url scrubbing test when GPG is not set
  push: anonymize URL in status output
This commit is contained in:
Junio C Hamano 2016-08-08 14:21:34 -07:00
Родитель 880b3fee51 68f3c079fe
Коммит 71076e11cd
2 изменённых файлов: 14 добавлений и 2 удалений

Просмотреть файл

@ -368,5 +368,14 @@ test_expect_success GPG 'push with post-receive to inspect certificate' '
test_cmp expect "$HTTPD_DOCUMENT_ROOT_PATH/push-cert-status" test_cmp expect "$HTTPD_DOCUMENT_ROOT_PATH/push-cert-status"
' '
test_expect_success 'push status output scrubs password' '
cd "$ROOT_PATH/test_repo_clone" &&
git push --porcelain \
"$HTTPD_URL_USER_PASS/smart/test_repo.git" \
+HEAD:scrub >status &&
# should have been scrubbed down to vanilla URL
grep "^To $HTTPD_URL/smart/test_repo.git" status
'
stop_httpd stop_httpd
test_done test_done

Просмотреть файл

@ -359,8 +359,11 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
static int print_one_push_status(struct ref *ref, const char *dest, int count, int porcelain) static int print_one_push_status(struct ref *ref, const char *dest, int count, int porcelain)
{ {
if (!count) if (!count) {
fprintf(porcelain ? stdout : stderr, "To %s\n", dest); char *url = transport_anonymize_url(dest);
fprintf(porcelain ? stdout : stderr, "To %s\n", url);
free(url);
}
switch(ref->status) { switch(ref->status) {
case REF_STATUS_NONE: case REF_STATUS_NONE: