Re: [PATCH v2 09/19] pull: error on no merge candidates
- From
Paul Tan <pyokagan@gmail.com>
- Date
- Jun 13, 2015, 05:52 UTC
- Message-ID
- <CACRoPnR6+xBr5T+KGe5fFoi9GEtG5LsjZ9nYVqiTz1=R+7cZ6w@mail.gmail.com>
- In-Reply-To
- <xmqqeglkwi4u.fsf@gitster.dls.corp.google.com>
On Wed, Jun 10, 2015 at 7:56 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
> Paul Tan <pyokagan@gmail.com> 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...
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.
Show 12 quoted lines
>> +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
Show 5 quoted lines
>> + 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