Browse Source

builtin-fetch.c (store_updated_refs): Honor update_local_ref() return value

Sync with builtin-fetch--tool.c where append_fetch_head()
honors update_local_ref() return value.

This fixes non fast forward fetch exit status,
http://bugzilla.altlinux.org/show_bug.cgi?id=15037

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Dmitry V. Levin 17 years ago committed by Junio C Hamano
parent
commit
efb98b4453
  1. 6
      builtin-fetch.c
  2. 37
      t/t5518-fetch-exit-status.sh

6
builtin-fetch.c

@ -286,7 +286,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map) @@ -286,7 +286,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map)
{
FILE *fp;
struct commit *commit;
int url_len, i, note_len, shown_url = 0;
int url_len, i, note_len, shown_url = 0, rc = 0;
char note[1024];
const char *what, *kind;
struct ref *rm;
@ -353,7 +353,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map) @@ -353,7 +353,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map)
note);

if (ref)
update_local_ref(ref, what, verbose, note);
rc |= update_local_ref(ref, what, verbose, note);
else
sprintf(note, "* %-*s %-*s -> FETCH_HEAD",
SUMMARY_WIDTH, *kind ? kind : "branch",
@ -368,7 +368,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map) @@ -368,7 +368,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map)
}
}
fclose(fp);
return 0;
return rc;
}

/*

37
t/t5518-fetch-exit-status.sh

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
#!/bin/sh
#
# Copyright (c) 2008 Dmitry V. Levin
#

test_description='fetch exit status test'

. ./test-lib.sh

test_expect_success setup '

>file &&
git add file &&
git commit -m initial &&

git checkout -b side &&
echo side >file &&
git commit -a -m side &&

git checkout master &&
echo next >file &&
git commit -a -m next
'

test_expect_success 'non fast forward fetch' '

test_must_fail git fetch . master:side

'

test_expect_success 'forced update' '

git fetch . +master:side

'

test_done
Loading…
Cancel
Save