{"thread":{"id":"24824","subject":"[PATCH 1/2] git-merge: ignore space support","startedAt":"2010-08-22T05:45:10Z","lastAt":"2010-08-22T05:45:10Z","messageCount":1,"participants":["Justin Frankel"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"148692","messageId":"20100822054510.GB64856@ns1.cockos.com","threadId":"24824","inReplyTo":null,"subject":"[PATCH 1/2] git-merge: ignore space support","fromName":"Justin Frankel","fromEmail":"justin@cockos.com","sentAt":"2010-08-22T05:45:10Z","receivedAt":"2010-08-22T05:45:10Z","isPatch":true,"sender":{"key":"justin@cockos.com","avatar":"https://avatars.githubusercontent.com/u/5803984?v=4"},"body":"\n---\n builtin/merge-recursive.c |    9 +++++++++\n builtin/merge.c           |    9 +++++++++\n ll-merge.c                |    3 ++-\n merge-recursive.c         |    2 +-\n merge-recursive.h         |    1 +\n 5 files changed, 22 insertions(+), 2 deletions(-)\n\ndiff --git a/builtin/merge-recursive.c b/builtin/merge-recursive.c\nindex d8875d5..0f0cd6a 100644\n--- a/builtin/merge-recursive.c\n+++ b/builtin/merge-recursive.c\n@@ -2,6 +2,7 @@\n #include \"commit.h\"\n #include \"tag.h\"\n #include \"merge-recursive.h\"\n+#include \"xdiff-interface.h\"\n \n static const char *better_branch_name(const char *branch)\n {\n@@ -45,6 +46,14 @@ int cmd_merge_recursive(int argc, const char **argv, const char *prefix)\n \t\t\t\to.subtree_shift = \"\";\n \t\t\telse if (!prefixcmp(arg+2, \"subtree=\"))\n \t\t\t\to.subtree_shift = arg + 10;\n+                        else if (!strcmp(arg+2, \"ignore-all-space\"))\n+                                o.xdl_opts |= XDF_IGNORE_WHITESPACE;\n+                        else if (!strcmp(arg+2, \"ignore-space-change\"))\n+                                o.xdl_opts |= XDF_IGNORE_WHITESPACE_CHANGE;\n+                        else if (!strcmp(arg+2, \"ignore-space-at-eol\"))\n+                                o.xdl_opts |= XDF_IGNORE_WHITESPACE_AT_EOL;\n+                        else if (!strcmp(arg+2, \"patience\"))\n+                                o.xdl_opts |= XDF_PATIENCE_DIFF;\n \t\t\telse\n \t\t\t\tdie(\"Unknown option %s\", arg);\n \t\t\tcontinue;\ndiff --git a/builtin/merge.c b/builtin/merge.c\nindex 37ce4f5..00580f3 100644\n--- a/builtin/merge.c\n+++ b/builtin/merge.c\n@@ -25,6 +25,7 @@\n #include \"help.h\"\n #include \"merge-recursive.h\"\n #include \"resolve-undo.h\"\n+#include \"xdiff-interface.h\"\n \n #define DEFAULT_TWOHEAD (1<<0)\n #define DEFAULT_OCTOPUS (1<<1)\n@@ -633,6 +634,14 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,\n \t\t\t\to.subtree_shift = \"\";\n \t\t\telse if (!prefixcmp(xopts[x], \"subtree=\"))\n \t\t\t\to.subtree_shift = xopts[x]+8;\n+\t\t        else if (!strcmp(xopts[x], \"ignore-all-space\"))\n+\t\t                o.xdl_opts |= XDF_IGNORE_WHITESPACE;\n+\t\t        else if (!strcmp(xopts[x], \"ignore-space-change\"))\n+\t\t                o.xdl_opts |= XDF_IGNORE_WHITESPACE_CHANGE;\n+\t\t        else if (!strcmp(xopts[x], \"ignore-space-at-eol\"))\n+\t\t                o.xdl_opts |= XDF_IGNORE_WHITESPACE_AT_EOL;\n+\t\t        else if (!strcmp(xopts[x], \"patience\"))\n+\t\t                o.xdl_opts |= XDF_PATIENCE_DIFF;\n \t\t\telse\n \t\t\t\tdie(\"Unknown option for merge-recursive: -X%s\", xopts[x]);\n \t\t}\ndiff --git a/ll-merge.c b/ll-merge.c\nindex 3764a1a..1d09eab 100644\n--- a/ll-merge.c\n+++ b/ll-merge.c\n@@ -87,6 +87,7 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,\n \txmp.ancestor = orig_name;\n \txmp.file1 = name1;\n \txmp.file2 = name2;\n+        xmp.xpp.flags = (flag >> 4) & 0x3f;\n \treturn xdl_merge(orig, src1, src2, &xmp, result);\n }\n \n@@ -99,7 +100,7 @@ static int ll_union_merge(const struct ll_merge_driver *drv_unused,\n \t\t\t  int flag, int marker_size)\n {\n \t/* Use union favor */\n-\tflag = (flag & 1) | (XDL_MERGE_FAVOR_UNION << 1);\n+\tflag = (flag & ~0xE) | (XDL_MERGE_FAVOR_UNION << 1);\n \treturn ll_xdl_merge(drv_unused, result, path_unused,\n \t\t\t    orig, NULL, src1, NULL, src2, NULL,\n \t\t\t    flag, marker_size);\ndiff --git a/merge-recursive.c b/merge-recursive.c\nindex 6cff9cd..c6f6d1d 100644\n--- a/merge-recursive.c\n+++ b/merge-recursive.c\n@@ -641,7 +641,7 @@ static int merge_3way(struct merge_options *o,\n \n \tmerge_status = ll_merge(result_buf, a->path, &orig, base_name,\n \t\t\t\t&src1, name1, &src2, name2,\n-\t\t\t\t(!!o->call_depth) | (favor << 1));\n+\t\t\t\t(!!o->call_depth) | (favor << 1) | (o->xdl_opts << 4));\n \n \tfree(name1);\n \tfree(name2);\ndiff --git a/merge-recursive.h b/merge-recursive.h\nindex b831293..633ec29 100644\n--- a/merge-recursive.h\n+++ b/merge-recursive.h\n@@ -13,6 +13,7 @@ struct merge_options {\n \t\tMERGE_RECURSIVE_THEIRS\n \t} recursive_variant;\n \tconst char *subtree_shift;\n+        int xdl_opts;\n \tunsigned buffer_output : 1;\n \tint verbosity;\n \tint diff_rename_limit;\n-- \n1.7.2.2.333.gec5bc.dirty\n"}]}