{"thread":{"id":"2737","subject":"[PATCH 0/4] Merge test cases","startedAt":"2005-12-03T10:32:55Z","lastAt":"2005-12-03T10:41:54Z","messageCount":5,"participants":["Fredrik Kuivinen"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"13138","messageId":"20051203103255.GA4896@c165.ib.student.liu.se","threadId":"2737","inReplyTo":null,"subject":"[PATCH 0/4] Merge test cases","fromName":"Fredrik Kuivinen","fromEmail":"freku045@student.liu.se","sentAt":"2005-12-03T10:32:55Z","receivedAt":"2005-12-03T10:32:55Z","isPatch":true,"sender":{"key":"frekui@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13770967?v=4"},"body":"This series adds two test cases for merge strategies. The first one\ntest that something sensible is done in case of directory/file\nconflicts, the second one tests a criss-cross merge.\n\n- Fredrik\n"},{"id":"13139","messageId":"20051203104021.GB4896@c165.ib.student.liu.se","threadId":"2737","inReplyTo":"20051203103255.GA4896@c165.ib.student.liu.se","subject":"[PATCH 1/4] git-merge: Exit with code 2 if no strategy was able to handle the merge.","fromName":"Fredrik Kuivinen","fromEmail":"freku045@student.liu.se","sentAt":"2005-12-03T10:40:21Z","receivedAt":"2005-12-03T10:40:21Z","isPatch":true,"sender":{"key":"frekui@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13770967?v=4"},"body":"This way it is possible to test in scripts if the merge was non-clean\nor if the strategy had other problems with the merge.\n\nSigned-off-by: Fredrik Kuivinen <freku045@student.liu.se>\n\n\n---\n\n git-merge.sh |    3 ++-\n 1 files changed, 2 insertions(+), 1 deletions(-)\n\n8fb7e4ef2b13f85966976c567cefb6a6d4c18c29\ndiff --git a/git-merge.sh b/git-merge.sh\nindex d352a3c..a221daa 100755\n--- a/git-merge.sh\n+++ b/git-merge.sh\n@@ -273,7 +273,8 @@ fi\n case \"$best_strategy\" in\n '')\n \trestorestate\n-\tdie \"No merge strategy handled the merge.\"\n+\techo >&2 \"No merge strategy handled the merge.\"\n+\texit 2\n \t;;\n \"$wt_strategy\")\n \t# We already have its result in the working tree.\n-- \n0.99.9.GIT\n"},{"id":"13141","messageId":"20051203104039.GC4896@c165.ib.student.liu.se","threadId":"2737","inReplyTo":"20051203103255.GA4896@c165.ib.student.liu.se","subject":"[PATCH 2/4] test-lib.sh: Add new function, test_expect_code","fromName":"Fredrik Kuivinen","fromEmail":"freku045@student.liu.se","sentAt":"2005-12-03T10:40:39Z","receivedAt":"2005-12-03T10:40:39Z","isPatch":true,"sender":{"key":"frekui@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13770967?v=4"},"body":"The test is considered OK if it exits with code $1\n\nSigned-off-by: Fredrik Kuivinen <freku045@student.liu.se>\n\n\n---\n\n t/test-lib.sh |   13 +++++++++++++\n 1 files changed, 13 insertions(+), 0 deletions(-)\n\n12ea56dda039b8b2fed61459a7a2df5ebf3dfde2\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex e654155..f2eccd7 100755\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -133,6 +133,19 @@ test_expect_success () {\n \tfi\n }\n \n+test_expect_code () {\n+\ttest \"$#\" = 3 ||\n+\terror \"bug in the test script: not 3 parameters to test-expect-code\"\n+\tsay >&3 \"expecting exit code $1: $3\"\n+\ttest_run_ \"$3\"\n+\tif [ \"$?\" = 0 -a \"$eval_ret\" = \"$1\" ]\n+\tthen\n+\t\ttest_ok_ \"$2\"\n+\telse\n+\t\ttest_failure_ \"$@\"\n+\tfi\n+}\n+\n test_done () {\n \ttrap - exit\n \tcase \"$test_failure\" in\n-- \n0.99.9.GIT\n"},{"id":"13140","messageId":"20051203104120.GD4896@c165.ib.student.liu.se","threadId":"2737","inReplyTo":"20051203103255.GA4896@c165.ib.student.liu.se","subject":"[PATCH 3/4] New test case: merge with directory/file conflicts","fromName":"Fredrik Kuivinen","fromEmail":"freku045@student.liu.se","sentAt":"2005-12-03T10:41:20Z","receivedAt":"2005-12-03T10:41:20Z","isPatch":true,"sender":{"key":"frekui@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13770967?v=4"},"body":"Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>\n\n\n---\n\n t/t6020-merge-df.sh |   25 +++++++++++++++++++++++++\n 1 files changed, 25 insertions(+), 0 deletions(-)\n create mode 100755 t/t6020-merge-df.sh\n\nb1d7b5544a3890d2beb19286a328bc2f7e92cb6b\ndiff --git a/t/t6020-merge-df.sh b/t/t6020-merge-df.sh\nnew file mode 100755\nindex 0000000..a19d49d\n--- /dev/null\n+++ b/t/t6020-merge-df.sh\n@@ -0,0 +1,25 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2005 Fredrik Kuivinen\n+#\n+\n+test_description='Test merge with directory/file conflicts'\n+. ./test-lib.sh\n+\n+test_expect_success 'prepare repository' \\\n+'echo \"Hello\" > init &&\n+git add init &&\n+git commit -m \"Initial commit\" &&\n+git branch B &&\n+mkdir dir &&\n+echo \"foo\" > dir/foo &&\n+git add dir/foo &&\n+git commit -m \"File: dir/foo\" &&\n+git checkout B &&\n+echo \"file dir\" > dir &&\n+git add dir &&\n+git commit -m \"File: dir\"'\n+\n+test_expect_code 1 'Merge with d/f conflicts' 'git merge \"merge msg\" B master'\n+\n+test_done\n-- \n0.99.9.GIT\n"},{"id":"13142","messageId":"20051203104154.GE4896@c165.ib.student.liu.se","threadId":"2737","inReplyTo":"20051203103255.GA4896@c165.ib.student.liu.se","subject":"[PATCH 4/4] New test case: Criss-cross merge","fromName":"Fredrik Kuivinen","fromEmail":"freku045@student.liu.se","sentAt":"2005-12-03T10:41:54Z","receivedAt":"2005-12-03T10:41:54Z","isPatch":true,"sender":{"key":"frekui@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13770967?v=4"},"body":"Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>\n\n\n---\n\n t/t6021-merge-criss-cross.sh |   92 ++++++++++++++++++++++++++++++++++++++++++\n 1 files changed, 92 insertions(+), 0 deletions(-)\n create mode 100755 t/t6021-merge-criss-cross.sh\n\n0813848ea43ec76a07fd5bf57dfa68332513d930\ndiff --git a/t/t6021-merge-criss-cross.sh b/t/t6021-merge-criss-cross.sh\nnew file mode 100755\nindex 0000000..e8606c7\n--- /dev/null\n+++ b/t/t6021-merge-criss-cross.sh\n@@ -0,0 +1,92 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2005 Fredrik Kuivinen\n+#\n+\n+# See http://marc.theaimsgroup.com/?l=git&m=111463358500362&w=2 for a\n+# nice decription of what this is about.\n+\n+\n+test_description='Test criss-cross merge'\n+. ./test-lib.sh\n+\n+test_expect_success 'prepare repository' \\\n+'echo \"1\n+2\n+3\n+4\n+5\n+6\n+7\n+8\n+9\" > file &&\n+git add file && \n+git commit -m \"Initial commit\" file &&\n+git branch A &&\n+git branch B &&\n+git checkout A &&\n+echo \"1\n+2\n+3\n+4\n+5\n+6\n+7\n+8 changed in B8, branch A\n+9\" > file &&\n+git commit -m \"B8\" file &&\n+git checkout B &&\n+echo \"1\n+2\n+3 changed in C3, branch B\n+4\n+5\n+6\n+7\n+8\n+9\n+\" > file &&\n+git commit -m \"C3\" file &&\n+git branch C3 &&\n+git merge \"pre E3 merge\" B A &&\n+echo \"1\n+2\n+3 changed in E3, branch B. New file size\n+4\n+5\n+6\n+7\n+8 changed in B8, branch A\n+9\n+\" > file &&\n+git commit -m \"E3\" file &&\n+git checkout A &&\n+git merge \"pre D8 merge\" A C3 &&\n+echo \"1\n+2\n+3 changed in C3, branch B\n+4\n+5\n+6\n+7\n+8 changed in D8, branch A. New file size 2\n+9\" > file &&\n+git commit -m D8 file'\n+\n+test_expect_success 'Criss-cross merge' 'git merge \"final merge\" A B'\n+\n+cat > file-expect <<EOF\n+1\n+2\n+3 changed in E3, branch B. New file size\n+4\n+5\n+6\n+7\n+8 changed in D8, branch A. New file size 2\n+9\n+EOF\n+\n+test_expect_success 'Criss-cross merge result' 'cmp file file-expect'\n+\n+test_done\n-- \n0.99.9.GIT\n"}]}