{"thread":{"id":"50843","subject":"[GSoC][PATCH v4 0/5] Avoid using pipes","startedAt":"2019-03-30T14:28:10Z","lastAt":"2019-03-31T18:57:30Z","messageCount":9,"participants":["Jonathan Chang","Thomas Gummerer","jonathan chang"],"isPatch":true,"patchVersion":4,"patchTotal":5},"messages":[{"id":"372799","messageId":"cover.1553954776.git.ttjtftx@gmail.com","threadId":"50843","inReplyTo":null,"subject":"[GSoC][PATCH v4 0/5] Avoid using pipes","fromName":"Jonathan Chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-30T14:27:53Z","receivedAt":"2019-03-30T14:28:10Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"I added 2 additional patches that modernize style, based on discussion\nin [1].\nAlso added description in commit message as suggested in [2].\n\n\n[v1]: https://public-inbox.org/git/20190309154555.33407-1-ttjtftx@gmail.com/\n[v2]: https://public-inbox.org/git/20190310080739.63984-1-ttjtftx@gmail.com/\n[v3]: https://public-inbox.org/git/cover.1552835153.git.ttjtftx@gmail.com/\n\n[1]: https://public-inbox.org/git/87imwha1o3.fsf@evledraar.gmail.com/\n[2]: https://public-inbox.org/git/20190317200609.GA1216@hank.intra.tgummerer.com/\n\n\nJonathan Chang (5):\n  t0000: fix indentation\n  t0000: avoid using pipes\n  t0000: use test_line_count instead of wc -l\n  t0000: use test_cmp instead of \"test\" builtin\n  t0000: make use of the test_must_be_empty function\n\n t/t0000-basic.sh | 41 +++++++++++++++++++++--------------------\n 1 file changed, 21 insertions(+), 20 deletions(-)\n\nRange-diff against v3:\n1:  768bf373d0 = 1:  86146182b7 t0000: fix indentation\n2:  8ee5e073a2 ! 2:  1ca1168f91 t0000: avoid using pipes\n    @@ -6,6 +6,10 @@\n         using it. By writing out the output of the git command to a file, we can\n         test the exit codes of both the commands.\n     \n    +    This commit doesn't make any additional simplifications, such as using\n    +    the test_line_count function for counting the lines in the output. These\n    +    simplifications will be made in subsequent commits.\n    +\n         Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n     \n      diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\n3:  68590a40d7 = 3:  28986ed000 t0000: use test_line_count instead of wc -l\n-:  ---------- > 4:  731463ed98 t0000: use test_cmp instead of \"test\" builtin\n-:  ---------- > 5:  53f58a4f89 t0000: make use of the test_must_be_empty function\n-- \n2.21.0\n\n"},{"id":"372800","messageId":"86146182b7b1d4194168f509d0ee421713723700.1553954776.git.ttjtftx@gmail.com","threadId":"50843","inReplyTo":"cover.1553954776.git.ttjtftx@gmail.com","subject":"[GSoC][PATCH v4 1/5] t0000: fix indentation","fromName":"Jonathan Chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-30T14:27:54Z","receivedAt":"2019-03-30T14:28:14Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"Fix indentation of a line containing a pipeline to reduce the\nnoise when refactoring the pipeline in a subsequent commit.\nThis has been wrong since the refactoring done in 1b5b2b641a\n(\"t0000: modernise style\", 2012-03-02), but carries no meaning.\n\nSigned-off-by: Jonathan Chang <ttjtftx@gmail.com>\n---\n t/t0000-basic.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\nindex b6566003dd..53821f5817 100755\n--- a/t/t0000-basic.sh\n+++ b/t/t0000-basic.sh\n@@ -1132,7 +1132,7 @@ test_expect_success 'git commit-tree records the correct parent in a commit' '\n \n test_expect_success 'git commit-tree omits duplicated parent in a commit' '\n \tcommit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) &&\n-\t     parent=$(git show --pretty=raw $commit2 |\n+\tparent=$(git show --pretty=raw $commit2 |\n \t\tsed -n -e \"s/^parent //p\" -e \"/^author /q\" |\n \t\tsort -u) &&\n \ttest \"z$commit0\" = \"z$parent\" &&\n-- \n2.21.0\n\n"},{"id":"372801","messageId":"1ca1168f91daaef5936c97179715ca8e8d4fb6ef.1553954776.git.ttjtftx@gmail.com","threadId":"50843","inReplyTo":"cover.1553954776.git.ttjtftx@gmail.com","subject":"[GSoC][PATCH v4 2/5] t0000: avoid using pipes","fromName":"Jonathan Chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-30T14:27:55Z","receivedAt":"2019-03-30T14:28:17Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"The exit code of the upstream in a pipe is ignored thus we should avoid\nusing it. By writing out the output of the git command to a file, we can\ntest the exit codes of both the commands.\n\nThis commit doesn't make any additional simplifications, such as using\nthe test_line_count function for counting the lines in the output. These\nsimplifications will be made in subsequent commits.\n\nSigned-off-by: Jonathan Chang <ttjtftx@gmail.com>\n---\n t/t0000-basic.sh | 28 ++++++++++++++--------------\n 1 file changed, 14 insertions(+), 14 deletions(-)\n\ndiff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\nindex 53821f5817..47666b013e 100755\n--- a/t/t0000-basic.sh\n+++ b/t/t0000-basic.sh\n@@ -1118,27 +1118,25 @@ P=$(test_oid root)\n \n test_expect_success 'git commit-tree records the correct tree in a commit' '\n \tcommit0=$(echo NO | git commit-tree $P) &&\n-\ttree=$(git show --pretty=raw $commit0 |\n-\t\t sed -n -e \"s/^tree //p\" -e \"/^author /q\") &&\n+\tgit show --pretty=raw $commit0 >actual &&\n+\ttree=$(sed -n -e \"s/^tree //p\" -e \"/^author /q\" actual) &&\n \ttest \"z$tree\" = \"z$P\"\n '\n \n test_expect_success 'git commit-tree records the correct parent in a commit' '\n \tcommit1=$(echo NO | git commit-tree $P -p $commit0) &&\n-\tparent=$(git show --pretty=raw $commit1 |\n-\t\tsed -n -e \"s/^parent //p\" -e \"/^author /q\") &&\n+\tgit show --pretty=raw $commit1 >actual &&\n+\tparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual) &&\n \ttest \"z$commit0\" = \"z$parent\"\n '\n \n test_expect_success 'git commit-tree omits duplicated parent in a commit' '\n \tcommit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) &&\n-\tparent=$(git show --pretty=raw $commit2 |\n-\t\tsed -n -e \"s/^parent //p\" -e \"/^author /q\" |\n-\t\tsort -u) &&\n+\tgit show --pretty=raw $commit2 >actual &&\n+\tparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual | sort -u) &&\n \ttest \"z$commit0\" = \"z$parent\" &&\n-\tnumparent=$(git show --pretty=raw $commit2 |\n-\t\tsed -n -e \"s/^parent //p\" -e \"/^author /q\" |\n-\t\twc -l) &&\n+\tgit show --pretty=raw $commit2 >actual &&\n+\tnumparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual | wc -l) &&\n \ttest $numparent = 1\n '\n \n@@ -1147,7 +1145,8 @@ test_expect_success 'update-index D/F conflict' '\n \tmv path2 path0 &&\n \tmv tmp path2 &&\n \tgit update-index --add --replace path2 path0/file2 &&\n-\tnumpath0=$(git ls-files path0 | wc -l) &&\n+\tgit ls-files path0 >actual &&\n+\tnumpath0=$(wc -l <actual) &&\n \ttest $numpath0 = 1\n '\n \n@@ -1162,12 +1161,13 @@ test_expect_success 'very long name in the index handled sanely' '\n \t>path4 &&\n \tgit update-index --add path4 &&\n \t(\n-\t\tgit ls-files -s path4 |\n-\t\tsed -e \"s/\t.*/\t/\" |\n+\t\tgit ls-files -s path4 >actual &&\n+\t\tsed -e \"s/\t.*/\t/\" actual |\n \t\ttr -d \"\\012\" &&\n \t\techo \"$a\"\n \t) | git update-index --index-info &&\n-\tlen=$(git ls-files \"a*\" | wc -c) &&\n+\tgit ls-files \"a*\" >actual &&\n+\tlen=$(wc -c <actual) &&\n \ttest $len = 4098\n '\n \n-- \n2.21.0\n\n"},{"id":"372802","messageId":"28986ed00090df33791a6d53a5292b1bb296eaf5.1553954776.git.ttjtftx@gmail.com","threadId":"50843","inReplyTo":"cover.1553954776.git.ttjtftx@gmail.com","subject":"[GSoC][PATCH v4 3/5] t0000: use test_line_count instead of wc -l","fromName":"Jonathan Chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-30T14:27:56Z","receivedAt":"2019-03-30T14:28:20Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n---\n t/t0000-basic.sh | 7 +++----\n 1 file changed, 3 insertions(+), 4 deletions(-)\n\ndiff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\nindex 47666b013e..3de13daabe 100755\n--- a/t/t0000-basic.sh\n+++ b/t/t0000-basic.sh\n@@ -1136,8 +1136,8 @@ test_expect_success 'git commit-tree omits duplicated parent in a commit' '\n \tparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual | sort -u) &&\n \ttest \"z$commit0\" = \"z$parent\" &&\n \tgit show --pretty=raw $commit2 >actual &&\n-\tnumparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual | wc -l) &&\n-\ttest $numparent = 1\n+\tsed -n -e \"s/^parent //p\" -e \"/^author /q\" actual >parents &&\n+\ttest_line_count = 1 parents\n '\n \n test_expect_success 'update-index D/F conflict' '\n@@ -1146,8 +1146,7 @@ test_expect_success 'update-index D/F conflict' '\n \tmv tmp path2 &&\n \tgit update-index --add --replace path2 path0/file2 &&\n \tgit ls-files path0 >actual &&\n-\tnumpath0=$(wc -l <actual) &&\n-\ttest $numpath0 = 1\n+\ttest_line_count = 1 actual\n '\n \n test_expect_success 'very long name in the index handled sanely' '\n-- \n2.21.0\n\n"},{"id":"372803","messageId":"731463ed9892c283b6acb0ce69e097769e43de62.1553954776.git.ttjtftx@gmail.com","threadId":"50843","inReplyTo":"cover.1553954776.git.ttjtftx@gmail.com","subject":"[GSoC][PATCH v4 4/5] t0000: use test_cmp instead of \"test\" builtin","fromName":"Jonathan Chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-30T14:27:57Z","receivedAt":"2019-03-30T14:28:22Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n---\n t/t0000-basic.sh | 14 ++++++++------\n 1 file changed, 8 insertions(+), 6 deletions(-)\n\ndiff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\nindex 3de13daabe..49923c5ff1 100755\n--- a/t/t0000-basic.sh\n+++ b/t/t0000-basic.sh\n@@ -1118,16 +1118,18 @@ P=$(test_oid root)\n \n test_expect_success 'git commit-tree records the correct tree in a commit' '\n \tcommit0=$(echo NO | git commit-tree $P) &&\n-\tgit show --pretty=raw $commit0 >actual &&\n-\ttree=$(sed -n -e \"s/^tree //p\" -e \"/^author /q\" actual) &&\n-\ttest \"z$tree\" = \"z$P\"\n+\tgit show --pretty=raw $commit0 >output &&\n+\techo \"$P\" >expect &&\n+\tsed -n -e \"s/^tree //p\" -e \"/^author /q\" output >actual &&\n+\ttest_cmp expect actual\n '\n \n test_expect_success 'git commit-tree records the correct parent in a commit' '\n \tcommit1=$(echo NO | git commit-tree $P -p $commit0) &&\n-\tgit show --pretty=raw $commit1 >actual &&\n-\tparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual) &&\n-\ttest \"z$commit0\" = \"z$parent\"\n+\tgit show --pretty=raw $commit1 >output &&\n+\techo \"$commit0\" >expect &&\n+\tsed -n -e \"s/^parent //p\" -e \"/^author /q\" output >actual &&\n+\ttest_cmp expect actual\n '\n \n test_expect_success 'git commit-tree omits duplicated parent in a commit' '\n-- \n2.21.0\n\n"},{"id":"372804","messageId":"53f58a4f89ff911d0f761f4e9403e0ddb4454674.1553954776.git.ttjtftx@gmail.com","threadId":"50843","inReplyTo":"cover.1553954776.git.ttjtftx@gmail.com","subject":"[GSoC][PATCH v4 5/5] t0000: make use of the test_must_be_empty function","fromName":"Jonathan Chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-30T14:27:58Z","receivedAt":"2019-03-30T14:28:24Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n---\n t/t0000-basic.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\nindex 49923c5ff1..0cb69a89de 100755\n--- a/t/t0000-basic.sh\n+++ b/t/t0000-basic.sh\n@@ -51,7 +51,7 @@ test_expect_success 'verify that the running shell supports \"local\"' '\n \n test_expect_success '.git/objects should be empty after git init in an empty repo' '\n \tfind .git/objects -type f -print >should-be-empty &&\n-\ttest_line_count = 0 should-be-empty\n+\ttest_must_be_empty should-be-empty\n '\n \n # also it should have 2 subdirectories; no fan-out anymore, pack, and info.\n@@ -1110,7 +1110,7 @@ test_expect_success 'git update-index --refresh should succeed' '\n \n test_expect_success 'no diff after checkout and git update-index --refresh' '\n \tgit diff-files >current &&\n-\tcmp -s current /dev/null\n+\ttest_must_be_empty current\n '\n \n ################################################################\n-- \n2.21.0\n\n"},{"id":"372814","messageId":"20190330193842.GR32487@hank.intra.tgummerer.com","threadId":"50843","inReplyTo":"731463ed9892c283b6acb0ce69e097769e43de62.1553954776.git.ttjtftx@gmail.com","subject":"Re: [GSoC][PATCH v4 4/5] t0000: use test_cmp instead of \"test\" builtin","fromName":"Thomas Gummerer","fromEmail":"t.gummerer@gmail.com","sentAt":"2019-03-30T19:38:42Z","receivedAt":"2019-03-30T19:38:48Z","isPatch":true,"sender":{"key":"t.gummerer@gmail.com","avatar":"https://avatars.githubusercontent.com/u/191004?v=4"},"body":"On 03/30, Jonathan Chang wrote:\n> Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n> ---\n>  t/t0000-basic.sh | 14 ++++++++------\n>  1 file changed, 8 insertions(+), 6 deletions(-)\n> \n> diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\n> index 3de13daabe..49923c5ff1 100755\n> --- a/t/t0000-basic.sh\n> +++ b/t/t0000-basic.sh\n> @@ -1118,16 +1118,18 @@ P=$(test_oid root)\n>  \n>  test_expect_success 'git commit-tree records the correct tree in a commit' '\n>  \tcommit0=$(echo NO | git commit-tree $P) &&\n> -\tgit show --pretty=raw $commit0 >actual &&\n\nThis line has been introduced in a previous commit.  If the file was\ncalled 'output' there already, I think that patch would be just as\nunderstandable, but this diff would be a little less noisy.\n\n> -\ttree=$(sed -n -e \"s/^tree //p\" -e \"/^author /q\" actual) &&\n> -\ttest \"z$tree\" = \"z$P\"\n> +\tgit show --pretty=raw $commit0 >output &&\n> +\techo \"$P\" >expect &&\n> +\tsed -n -e \"s/^tree //p\" -e \"/^author /q\" output >actual &&\n\nI'd find it a bit more natural to either first create the expect file,\nand then do the 'git show' and 'sed' invocations in two subsequent\nlines, or do them first, and then create the expect files, rather than\ninterleaving them.\n\nI'm not sure either of these by itself is worth a new iteration,\nunless there is also something else to fix up.  But it's something\nthat you might want to keep in mind for future patches.\n\n> +\ttest_cmp expect actual\n>  '\n>  \n>  test_expect_success 'git commit-tree records the correct parent in a commit' '\n>  \tcommit1=$(echo NO | git commit-tree $P -p $commit0) &&\n> -\tgit show --pretty=raw $commit1 >actual &&\n> -\tparent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual) &&\n> -\ttest \"z$commit0\" = \"z$parent\"\n> +\tgit show --pretty=raw $commit1 >output &&\n> +\techo \"$commit0\" >expect &&\n> +\tsed -n -e \"s/^parent //p\" -e \"/^author /q\" output >actual &&\n> +\ttest_cmp expect actual\n>  '\n>  \n>  test_expect_success 'git commit-tree omits duplicated parent in a commit' '\n> -- \n> 2.21.0\n> \n"},{"id":"372825","messageId":"CAOAu_YKMuy2vWQqZz+=-7JGhce9BEdMqsr8HOKZOJVq=chpqVw@mail.gmail.com","threadId":"50843","inReplyTo":"20190330193842.GR32487@hank.intra.tgummerer.com","subject":"Re: [GSoC][PATCH v4 4/5] t0000: use test_cmp instead of \"test\" builtin","fromName":"jonathan chang","fromEmail":"ttjtftx@gmail.com","sentAt":"2019-03-31T05:17:00Z","receivedAt":"2019-03-31T05:17:13Z","isPatch":true,"sender":{"key":"ttjtftx@gmail.com","avatar":null},"body":"On Sun, Mar 31, 2019 at 3:38 AM Thomas Gummerer <t.gummerer@gmail.com> wrote:\n>\n> On 03/30, Jonathan Chang wrote:\n> > Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n> > ---\n> >  t/t0000-basic.sh | 14 ++++++++------\n> >  1 file changed, 8 insertions(+), 6 deletions(-)\n> >\n> > diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\n> > index 3de13daabe..49923c5ff1 100755\n> > --- a/t/t0000-basic.sh\n> > +++ b/t/t0000-basic.sh\n> > @@ -1118,16 +1118,18 @@ P=$(test_oid root)\n> >\n> >  test_expect_success 'git commit-tree records the correct tree in a commit' '\n> >       commit0=$(echo NO | git commit-tree $P) &&\n> > -     git show --pretty=raw $commit0 >actual &&\n>\n> This line has been introduced in a previous commit.  If the file was\n> called 'output' there already, I think that patch would be just as\n> understandable, but this diff would be a little less noisy.\n\nMake sense. I tried to make patches from last iteration untouched,\nso I don't break anything. And I was wondering since I'm only\nappending patches, if I should also append the PATCH number as\n[PATCH v3 4/3], to reduce the number of emails. Now I realize that\nby making it a new iteration, we can also make some improvement\nto reduce the patch noise.\n\n>\n> > -     tree=$(sed -n -e \"s/^tree //p\" -e \"/^author /q\" actual) &&\n> > -     test \"z$tree\" = \"z$P\"\n> > +     git show --pretty=raw $commit0 >output &&\n> > +     echo \"$P\" >expect &&\n> > +     sed -n -e \"s/^tree //p\" -e \"/^author /q\" output >actual &&\n>\n> I'd find it a bit more natural to either first create the expect file,\n> and then do the 'git show' and 'sed' invocations in two subsequent\n> lines, or do them first, and then create the expect files, rather than\n> interleaving them.\n>\n> I'm not sure either of these by itself is worth a new iteration,\n> unless there is also something else to fix up.  But it's something\n> that you might want to keep in mind for future patches.\n\nI thought about all three options, starting with expect files being\nthe last, but found that most test_cmp seem to have expect file\ncreated first, then decided to make the creation of actual and\nexpect be on consecutive lines.\n\nNow I would probably move the creation expect to the last line.\nThanks for the review and suggestions.\n\n>\n> > +     test_cmp expect actual\n> >  '\n> >\n> >  test_expect_success 'git commit-tree records the correct parent in a commit' '\n> >       commit1=$(echo NO | git commit-tree $P -p $commit0) &&\n> > -     git show --pretty=raw $commit1 >actual &&\n> > -     parent=$(sed -n -e \"s/^parent //p\" -e \"/^author /q\" actual) &&\n> > -     test \"z$commit0\" = \"z$parent\"\n> > +     git show --pretty=raw $commit1 >output &&\n> > +     echo \"$commit0\" >expect &&\n> > +     sed -n -e \"s/^parent //p\" -e \"/^author /q\" output >actual &&\n> > +     test_cmp expect actual\n> >  '\n> >\n> >  test_expect_success 'git commit-tree omits duplicated parent in a commit' '\n> > --\n> > 2.21.0\n> >\n"},{"id":"372841","messageId":"20190331185724.GW32487@hank.intra.tgummerer.com","threadId":"50843","inReplyTo":"CAOAu_YKMuy2vWQqZz+=-7JGhce9BEdMqsr8HOKZOJVq=chpqVw@mail.gmail.com","subject":"Re: [GSoC][PATCH v4 4/5] t0000: use test_cmp instead of \"test\" builtin","fromName":"Thomas Gummerer","fromEmail":"t.gummerer@gmail.com","sentAt":"2019-03-31T18:57:24Z","receivedAt":"2019-03-31T18:57:30Z","isPatch":true,"sender":{"key":"t.gummerer@gmail.com","avatar":"https://avatars.githubusercontent.com/u/191004?v=4"},"body":"On 03/31, jonathan chang wrote:\n> On Sun, Mar 31, 2019 at 3:38 AM Thomas Gummerer <t.gummerer@gmail.com> wrote:\n> >\n> > On 03/30, Jonathan Chang wrote:\n> > > Signed-off-by: Jonathan Chang <ttjtftx@gmail.com>\n> > > ---\n> > >  t/t0000-basic.sh | 14 ++++++++------\n> > >  1 file changed, 8 insertions(+), 6 deletions(-)\n> > >\n> > > diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh\n> > > index 3de13daabe..49923c5ff1 100755\n> > > --- a/t/t0000-basic.sh\n> > > +++ b/t/t0000-basic.sh\n> > > @@ -1118,16 +1118,18 @@ P=$(test_oid root)\n> > >\n> > >  test_expect_success 'git commit-tree records the correct tree in a commit' '\n> > >       commit0=$(echo NO | git commit-tree $P) &&\n> > > -     git show --pretty=raw $commit0 >actual &&\n> >\n> > This line has been introduced in a previous commit.  If the file was\n> > called 'output' there already, I think that patch would be just as\n> > understandable, but this diff would be a little less noisy.\n> \n> Make sense. I tried to make patches from last iteration untouched,\n> so I don't break anything.\n\nThis is what running tests, and reviewing your own code are good for :)\n\n>                             And I was wondering since I'm only\n> appending patches, if I should also append the PATCH number as\n> [PATCH v3 4/3], to reduce the number of emails. Now I realize that\n> by making it a new iteration, we can also make some improvement\n> to reduce the patch noise.\n\nRight, appending patches using 4/3 for example can be done in some\nrare cases, but since you already modified patch 2/2, a new new\niteration is required anyway.\n\nSo yeah improving the overall series is always a good thing.\nEspecially since I see you already included the range-diff, it's not\nvery hard for reviewers to see what changed in the last iteration.\n"}]}