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