Re: [PATCH v2 09/19] pull: error on no merge candidates

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH v2 09/19] pull: error on no merge candidates

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:05:14

Paul Tan [off-list ref] writes:
 /**
+ * Appends merge candidates from FETCH_HEAD that are not marked not-for-merge
+ * into merge_heads.
+ */
Hmph, I vaguely recall doing that in C elsewhere already, even
though I do not remember where offhand...
+static void get_merge_heads(struct sha1_array *merge_heads)
+{
+	const char *filename = git_path("FETCH_HEAD");
+	FILE *fp;
+	struct strbuf sb = STRBUF_INIT;
+	unsigned char sha1[GIT_SHA1_RAWSZ];
+
+	if (!(fp = fopen(filename, "r")))
+		die_errno(_("could not open '%s' for reading"), filename);
+	while(strbuf_getline(&sb, fp, '\n') != EOF) {
Missing SP after "while"
+		if (get_sha1_hex(sb.buf, sha1))
+			continue;  /* invalid line: does not start with SHA1 */
+		if (starts_with(sb.buf + GIT_SHA1_HEXSZ, "\tnot-for-merge"))
Look for "\tnot-for-merge\t" instead?

The patch overall looks good.  Thanks.

Re: [PATCH v2 09/19] pull: error on no merge candidates

From: Paul Tan <hidden>
Date: 2016-06-15 23:05:17

On Wed, Jun 10, 2015 at 7:56 AM, Junio C Hamano [off-list ref] wrote:
Paul Tan [off-list ref] writes:
quoted
 /**
+ * Appends merge candidates from FETCH_HEAD that are not marked not-for-merge
+ * into merge_heads.
+ */
Hmph, I vaguely recall doing that in C elsewhere already, even
though I do not remember where offhand...
Right, handle_fetch_head() in builtin/merge.c. It looks up the commit
IDs into commit objects though, which is not required for git-pull. We
only need the list of hashes.
quoted
+static void get_merge_heads(struct sha1_array *merge_heads)
+{
+     const char *filename = git_path("FETCH_HEAD");
+     FILE *fp;
+     struct strbuf sb = STRBUF_INIT;
+     unsigned char sha1[GIT_SHA1_RAWSZ];
+
+     if (!(fp = fopen(filename, "r")))
+             die_errno(_("could not open '%s' for reading"), filename);
+     while(strbuf_getline(&sb, fp, '\n') != EOF) {
Missing SP after "while"
OK
quoted
+             if (get_sha1_hex(sb.buf, sha1))
+                     continue;  /* invalid line: does not start with SHA1 */
+             if (starts_with(sb.buf + GIT_SHA1_HEXSZ, "\tnot-for-merge"))
Look for "\tnot-for-merge\t" instead?
Right, it's better to be stricter.

Thanks,
Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help