{"thread":{"id":"7736","subject":"[BROKEN NEXT] merge-recursive thinkofix","startedAt":"2007-04-19T02:32:16Z","lastAt":"2007-04-19T02:32:16Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"39856","messageId":"7vps61aybz.fsf@assigned-by-dhcp.cox.net","threadId":"7736","inReplyTo":null,"subject":"[BROKEN NEXT] merge-recursive thinkofix","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-04-19T02:32:16Z","receivedAt":"2007-04-19T02:32:16Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The version I pushed out on 'next' has a serious breakage that\nwould affect merges to anybody who has 'merge.summary' or\n'merge.tool' set.\n\nSorry for the gotcha --- here is a quickfix.\n\nI'll be pushing out an updated 'next', hopefully shortly.\n\n---\n\n merge-recursive.c |   14 ++++++--------\n 1 files changed, 6 insertions(+), 8 deletions(-)\n\ndiff --git a/merge-recursive.c b/merge-recursive.c\nindex ec8438b..96e461c 100644\n--- a/merge-recursive.c\n+++ b/merge-recursive.c\n@@ -809,6 +809,9 @@ static int ll_ext_merge(const struct ll_merge_driver *fn,\n \tint status, fd, i;\n \tstruct stat st;\n \n+\tif (fn->cmdline == NULL)\n+\t\tdie(\"custom merge driver %s lacks command line.\", fn->name);\n+\n \tresult->ptr = NULL;\n \tresult->size = 0;\n \tcreate_temp(orig, temp[0]);\n@@ -879,7 +882,7 @@ static int read_merge_config(const char *var, const char *value)\n \t * especially, we do not want to look at variables such as\n \t * \"merge.summary\", \"merge.tool\", and \"merge.verbosity\".\n \t */\n-\tif (prefixcmp(var, \"merge.\") || (ep = strrchr(var, '.')) == var + 6)\n+\tif (prefixcmp(var, \"merge.\") || (ep = strrchr(var, '.')) == var + 5)\n \t\treturn 0;\n \n \t/*\n@@ -1021,13 +1024,8 @@ static int ll_merge(mmbuffer_t *result_buf,\n \tll_driver_name = git_path_check_merge(a->path);\n \tdriver = find_ll_merge_driver(ll_driver_name);\n \n-\tif (index_only && driver->recursive) {\n-\t\tvoid *merge_attr;\n-\n-\t\tll_driver_name = driver->recursive;\n-\t\tmerge_attr = git_attr(ll_driver_name, strlen(ll_driver_name));\n-\t\tdriver = find_ll_merge_driver(merge_attr);\n-\t}\n+\tif (index_only && driver->recursive)\n+\t\tdriver = find_ll_merge_driver(driver->recursive);\n \tmerge_status = driver->fn(driver, a->path,\n \t\t\t\t  &orig, &src1, name1, &src2, name2,\n \t\t\t\t  result_buf);\n"}]}