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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx>
---
 builtin-fetch.c              |    6 +++---
 t/t5518-fetch-exit-status.sh |   37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 3 deletions(-)
 create mode 100644 t/t5518-fetch-exit-status.sh

diff --git a/builtin-fetch.c b/builtin-fetch.c
index 167f948..db60966 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -292,7 +292,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 rc = 0, url_len, i, note_len, shown_url = 0;
 	char note[1024];
 	const char *what, *kind;
 	struct ref *rm;
@@ -359,7 +359,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 if (verbose)
 			sprintf(note, "* %-*s %-*s -> FETCH_HEAD",
 				SUMMARY_WIDTH, *kind ? kind : "branch",
@@ -376,7 +376,7 @@ static int store_updated_refs(const char *url, struct ref *ref_map)
 		}
 	}
 	fclose(fp);
-	return 0;
+	return rc;
 }
 
 /*
diff --git a/t/t5518-fetch-exit-status.sh b/t/t5518-fetch-exit-status.sh
new file mode 100644
index 0000000..c6bc65f
--- /dev/null
+++ b/t/t5518-fetch-exit-status.sh
@@ -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

-- 
ldv
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux