{"thread":{"id":"46401","subject":"[PATCH] rebase: make resolve message clearer for inexperienced users","startedAt":"2017-07-16T19:42:39Z","lastAt":"2017-07-17T21:59:25Z","messageCount":2,"participants":["William Duclot","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"324631","messageId":"20170716194220.1304-1-william.duclot@gmail.com","threadId":"46401","inReplyTo":null,"subject":"[PATCH] rebase: make resolve message clearer for inexperienced users","fromName":"William Duclot","fromEmail":"william.duclot@gmail.com","sentAt":"2017-07-16T19:42:20Z","receivedAt":"2017-07-16T19:42:39Z","isPatch":true,"sender":{"key":"william.duclot@gmail.com","avatar":"https://avatars.githubusercontent.com/u/15254996?v=4"},"body":"The git UI can be improved by addressing the error messages to those\nthey help: inexperienced and casual git users. To this intent, it is\nhelpful to make sure the terms used in those messages can be understood\nby this segment of users, and that they guide them to resolve the\nproblem.\n\nIn particular, failure to apply a patch during a git rebase is a common\nproblem that can be very destabilizing for the inexperienced user. It is\nimportant to lead them toward the resolution of the conflict (which is a\n3-steps process, thus complex) and reassure them that they can escape a\nsituation they can't handle with \"--abort\". This commit answer those two\npoints by detailling the resolution process and by avoiding cryptic git\nlinguo.\n\nSigned-off-by: William Duclot <william.duclot@gmail.com>\n---\nThose new messages have been written thanks to Junio feedbacks and users\ntests with a few inexperienced git users.\n\n git-rebase.sh   | 7 ++++---\n t/t5520-pull.sh | 4 ++--\n 2 files changed, 6 insertions(+), 5 deletions(-)\n\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex 2cf73b88e..ef3409679 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -55,9 +55,10 @@ LF='\n '\n ok_to_skip_pre_rebase=\n resolvemsg=\"\n-$(gettext 'When you have resolved this problem, run \"git rebase --continue\".\n-If you prefer to skip this patch, run \"git rebase --skip\" instead.\n-To check out the original branch and stop rebasing, run \"git rebase --abort\".')\n+$(gettext 'Resolve all conflicts manually, mark them as resolved with\n+\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n+You can instead skip this commit: run \"git rebase --skip\".\n+To abort and get back to the state before \"git rebase -i\", run \"git rebase --abort\".')\n \"\n unset onto\n unset restrict_revision\ndiff --git a/t/t5520-pull.sh b/t/t5520-pull.sh\nindex f15f7a332..59c4b778d 100755\n--- a/t/t5520-pull.sh\n+++ b/t/t5520-pull.sh\n@@ -305,7 +305,7 @@ test_expect_success '--rebase with conflicts shows advice' '\n \ttest_tick &&\n \tgit commit -m \"Create conflict\" seq.txt &&\n \ttest_must_fail git pull --rebase . seq 2>err >out &&\n-\ttest_i18ngrep \"When you have resolved this problem\" out\n+\ttest_i18ngrep \"Resolve all conflicts manually\" out\n '\n \n test_expect_success 'failed --rebase shows advice' '\n@@ -319,7 +319,7 @@ test_expect_success 'failed --rebase shows advice' '\n \tgit checkout -f -b fails-to-rebase HEAD^ &&\n \ttest_commit v2-without-cr file \"2\" file2-lf &&\n \ttest_must_fail git pull --rebase . diverging 2>err >out &&\n-\ttest_i18ngrep \"When you have resolved this problem\" out\n+\ttest_i18ngrep \"Resolve all conflicts manually\" out\n '\n \n test_expect_success '--rebase fails with multiple branches' '\n-- \n2.13.0\n\n"},{"id":"324687","messageId":"xmqqr2xeg1xl.fsf@gitster.mtv.corp.google.com","threadId":"46401","inReplyTo":"20170716194220.1304-1-william.duclot@gmail.com","subject":"Re: [PATCH] rebase: make resolve message clearer for inexperienced users","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-07-17T21:59:18Z","receivedAt":"2017-07-17T21:59:25Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"William Duclot <william.duclot@gmail.com> writes:\n\n> -$(gettext 'When you have resolved this problem, run \"git rebase --continue\".\n> -If you prefer to skip this patch, run \"git rebase --skip\" instead.\n> -To check out the original branch and stop rebasing, run \"git rebase --abort\".')\n> +$(gettext 'Resolve all conflicts manually, mark them as resolved with\n> +\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n> +You can instead skip this commit: run \"git rebase --skip\".\n> +To abort and get back to the state before \"git rebase -i\", run \"git rebase --abort\".')\n\nThis may be my fault, but we do not need to limit this to \"reabse\n-i\"; I'll drop \" -i\" from this line while queuing.\n\nThanks.\n"}]}