git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Denton Liu <liu.denton@gmail.com>
To: "SZEDER Gábor" <szeder.dev@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Eric Sunshine <sunshine@sunshineco.com>,
	Junio C Hamano <gitster@pobox.com>,
	Phillip Wood <phillip.wood@dunelm.org.uk>,
	Ramsay Jones <ramsay@ramsayjones.plus.com>
Subject: Re: [PATCH v8 00/11] Fix scissors bug during conflict
Date: Sun, 17 Mar 2019 20:02:20 -0700	[thread overview]
Message-ID: <20190318030220.GA14098@archbookpro.localdomain> (raw)
In-Reply-To: <20190317130539.GA23160@szeder.dev>

Hi Szeder,

On Sun, Mar 17, 2019 at 02:05:39PM +0100, SZEDER Gábor wrote:
> On Sun, Mar 17, 2019 at 03:15:50AM -0700, Denton Liu wrote:
> > Sorry for taking so long to do a reroll, I've been pretty busy this week
> > and I've only been able to find the time now.
> 
> No problem, and thank you for sticking with it!
> 
> 
> > diff --git a/t/t7502-commit-porcelain.sh b/t/t7502-commit-porcelain.sh
> > index ca4a740da0..f035e4a507 100755
> > --- a/t/t7502-commit-porcelain.sh
> > +++ b/t/t7502-commit-porcelain.sh
> > @@ -16,7 +16,9 @@ commit_msg_is () {
> >  # Arguments: [<prefix] [<commit message>] [<commit options>]
> >  check_summary_oneline() {
> >  	test_tick &&
> > -	git commit ${3+"$3"} -m "$2" | head -1 > act &&
> > +	git commit ${3+"$3"} -m "$2" >act &&
> > +	head -1 <act >tmp &&
> > +	mv tmp act &&
> 
> Here you could swap the order of when you write to 'act' and 'tmp',
> and thus make the 'mv' unnecessary, like this:
> 
>   git commit [...] >tmp &&
>   head -1 act >tmp &&
>   [...rest of the test...]
> 
> Note also that 'head' (or 'sed' in later tests) can open its input
> file on its own, there's no need to redirect its standard input.
> 
> This is a recurring pattern in patches 1, 4, 8, and 9.
> 

The reason I did it this way was because earlier, Junio said:
> > -     git cat-file commit HEAD | sed -e '1,/^$/d' >actual &&
> > +     git cat-file commit HEAD >tmp &&
> > +     sed -e '1,/^$/d' <tmp >actual &&
> 
> The intermediary file may want a name better than 'tmp', if it is to
> be left behind, but this will do for now.

So I opted to write the tests in a way where a tmp file won't be
produced. This pattern was shamelessly stolen from 
'set up mod-256 conflict scenario' in t7600 where it does the following:

	# 256 near-identical stanzas...
	for i in $(test_seq 1 256); do
		for j in 1 2 3 4 5; do
			echo $i-$j
		done
	done >file &&
	git add file &&
	git commit -m base &&

	# one side changes the first line of each to "master"
	sed s/-1/-master/ <file >tmp &&
	mv tmp file &&
	git commit -am master &&

Good point about the heads and seds, though. I completely forgot that
they accept a file argument.

> > @@ -142,8 +144,8 @@ test_expect_success 'sign off' '
> >  	>positive &&
> >  	git add positive &&
> >  	git commit -s -m "thank you" &&
> > -	actual=$(git cat-file commit HEAD | sed -ne "s/Signed-off-by: //p") &&
> > -	expected=$(git var GIT_COMMITTER_IDENT | sed -e "s/>.*/>/") &&
> > +	actual=$(git cat-file commit HEAD >tmp && sed -ne "s/Signed-off-by: //p" <tmp && rm tmp) &&
> > +	expected=$(git var GIT_COMMITTER_IDENT >tmp && sed -e "s/>.*/>/" <tmp && rm tmp) &&
> >  	test "z$actual" = "z$expected"
> 
> May I ask you to go one step further in restructuring this and the
> following tests? :)  Instead of using 'test' to compare the contents
> of the $actual and $expected variables, use 'test_cmp' to compare the
> 'actual' and 'expected' files, something like:
> 
>   git cat-file commit HEAD >tmp &&
>   sed -ne "s/Signed-off-by: //p" tmp >actual &&
>   git var GIT_COMMITTER_IDENT >tmp &&
>   sed -e "s/>.*/>/" >expected &&
>   test_cmp expected actual

Will do.

Thanks,

Denton

  reply	other threads:[~2019-03-18  3:02 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-14  5:24 [RFC PATCH 0/2] Fix scissors bug during merge conflict Denton Liu
2018-11-14  5:24 ` [RFC PATCH 1/2] commit: don't add scissors line if one exists Denton Liu
2018-11-14  8:06   ` Junio C Hamano
2018-11-14 18:06     ` Denton Liu
2018-11-16  3:32       ` Junio C Hamano
2018-11-14  5:25 ` [RFC PATCH 2/2] merge: add scissors line on merge conflict Denton Liu
2018-11-14  7:52 ` [RFC PATCH 0/2] Fix scissors bug during " Junio C Hamano
2018-11-14  8:10   ` Denton Liu
2018-11-16 15:19 ` [PATCH v2 " Denton Liu
2018-11-16 15:20   ` [PATCH v2 2/2] merge: add scissors line on " Denton Liu
2018-11-17 23:32   ` [PATCH v3 0/1] Fix scissors bug during " Denton Liu
2018-11-17 23:32     ` [PATCH v3 1/1] merge: add scissors line on " Denton Liu
2018-11-18 14:18       ` SZEDER Gábor
2018-11-18  6:54     ` [PATCH v3 0/1] Fix scissors bug during " Junio C Hamano
2018-11-21  3:13     ` [PATCH v4 0/2] " Denton Liu
2018-11-21  3:13       ` [PATCH v4 1/2] t7600: clean up 'merge --squash c3 with c7' test Denton Liu
2018-11-21  3:13       ` [PATCH v4 2/2] merge: add scissors line on merge conflict Denton Liu
2018-11-21  9:38       ` [PATCH v4 0/2] Fix scissors bug during " Junio C Hamano
2018-11-22  1:10         ` Denton Liu
2018-11-24  2:05           ` Junio C Hamano
2018-12-25 13:55       ` [PATCH v5 0/4] Add git-merge --cleanup support Denton Liu
2018-12-25 13:55         ` [PATCH v5 1/4] commit: extract cleanup_mode functions to sequencer Denton Liu
2018-12-25 13:56         ` [PATCH v5 2/4] t7600: clean up 'merge --squash c3 with c7' test Denton Liu
2018-12-25 13:56         ` [PATCH v5 3/4] merge: cleanup messages like commit Denton Liu
2018-12-25 13:56         ` [PATCH v5 4/4] merge: add scissors line on merge conflict Denton Liu
2019-01-23  5:06         ` [PATCH v6 0/4] Add git-merge --cleanup support Denton Liu
2019-01-23  5:06           ` [PATCH v6 1/4] commit: extract cleanup_mode functions to sequencer Denton Liu
2019-01-23  5:06           ` [PATCH v6 2/4] t7600: clean up 'merge --squash c3 with c7' test Denton Liu
2019-01-23  5:06           ` [PATCH v6 3/4] merge: cleanup messages like commit Denton Liu
2019-01-23  5:06           ` [PATCH v6 4/4] merge: add scissors line on merge conflict Denton Liu
2019-03-11  3:42           ` [PATCH v7 0/8] Fix scissors bug during conflict Denton Liu
2019-03-11  3:42             ` [PATCH v7 1/8] t7600: clean up 'merge --squash c3 with c7' test Denton Liu
2019-03-12  1:03               ` Junio C Hamano
2019-03-11  3:42             ` [PATCH v7 2/8] t3507: cleanup space after redirection operators Denton Liu
2019-03-11  3:42             ` [PATCH v7 3/8] commit: extract cleanup_mode functions to sequencer Denton Liu
2019-03-11  3:42             ` [PATCH v7 4/8] sequencer.c: remove duplicate code Denton Liu
2019-03-11 16:45               ` Phillip Wood
2019-03-11  3:42             ` [PATCH v7 5/8] merge: cleanup messages like commit Denton Liu
2019-03-11  5:49               ` Eric Sunshine
2019-03-11 10:14                 ` Phillip Wood
2019-03-11 17:00                   ` Eric Sunshine
2019-03-11 16:58               ` Phillip Wood
2019-03-12  5:50                 ` Junio C Hamano
2019-03-11  3:42             ` [PATCH v7 6/8] merge: add scissors line on merge conflict Denton Liu
2019-03-11  5:55               ` Eric Sunshine
2019-03-11  3:42             ` [PATCH v7 7/8] sequencer.c: define get_config_from_cleanup Denton Liu
2019-03-11  6:19               ` Eric Sunshine
2019-03-12  6:29               ` Junio C Hamano
2019-03-11  3:42             ` [PATCH v7 8/8] cherry-pick/revert: add scissors line on merge conflict Denton Liu
2019-03-12 11:11               ` Phillip Wood
2019-03-11  6:44             ` [PATCH v7 0/8] Fix scissors bug during conflict Junio C Hamano
2019-03-17 10:15             ` [PATCH v8 00/11] " Denton Liu
2019-03-17 10:15               ` [PATCH v8 01/11] t7600: clean up style Denton Liu
2019-03-17 10:15               ` [PATCH v8 02/11] t3507: cleanup space after redirection operators Denton Liu
2019-03-17 10:15               ` [PATCH v8 03/11] t7604: refactor out Git commands upstream of pipe Denton Liu
2019-03-17 10:16               ` [PATCH v8 04/11] t7502: clean up test style Denton Liu
2019-03-17 10:16               ` [PATCH v8 05/11] commit: extract cleanup_mode functions to sequencer Denton Liu
2019-03-17 10:16               ` [PATCH v8 06/11] parse-options.h: extract common --cleanup option Denton Liu
2019-03-17 10:16               ` [PATCH v8 07/11] sequencer.c: remove duplicate code Denton Liu
2019-03-17 10:16               ` [PATCH v8 08/11] merge: cleanup messages like commit Denton Liu
2019-03-19 11:13                 ` Phillip Wood
2019-03-20  6:32                   ` Denton Liu
2019-03-17 10:16               ` [PATCH v8 09/11] merge: add scissors line on merge conflict Denton Liu
2019-03-17 10:16               ` [PATCH v8 10/11] sequencer.c: define describe_cleanup_mode Denton Liu
2019-03-18 20:04                 ` Eric Sunshine
2019-03-18 20:30                   ` Denton Liu
2019-03-18 20:32                     ` Eric Sunshine
2019-03-19  0:55                   ` Ramsay Jones
2019-03-17 10:16               ` [PATCH v8 11/11] cherry-pick/revert: add scissors line on merge conflict Denton Liu
2019-03-17 13:05               ` [PATCH v8 00/11] Fix scissors bug during conflict SZEDER Gábor
2019-03-18  3:02                 ` Denton Liu [this message]
2019-03-18  6:35                 ` Junio C Hamano
2019-03-18  8:03                   ` Denton Liu
2019-03-18  8:25                     ` Junio C Hamano
2019-03-21  6:53               ` [PATCH v9 " Denton Liu
2019-03-21  6:53                 ` [PATCH v9 01/11] t7600: clean up style Denton Liu
2019-03-21  6:53                 ` [PATCH v9 02/11] t3507: " Denton Liu
2019-03-21  6:53                 ` [PATCH v9 03/11] t7604: " Denton Liu
2019-03-21  6:53                 ` [PATCH v9 04/11] t7502: " Denton Liu
2019-03-21  6:53                 ` [PATCH v9 05/11] commit: extract cleanup_mode functions to sequencer Denton Liu
2019-03-21  6:53                 ` [PATCH v9 06/11] parse-options.h: extract common --cleanup option Denton Liu
2019-03-21  6:53                 ` [PATCH v9 07/11] sequencer.c: remove duplicate code Denton Liu
2019-03-26 10:44                   ` Phillip Wood
2019-03-21  6:53                 ` [PATCH v9 08/11] merge: cleanup messages like commit Denton Liu
2019-03-21  6:53                 ` [PATCH v9 09/11] merge: add scissors line on merge conflict Denton Liu
2019-03-21  6:54                 ` [PATCH v9 10/11] sequencer.c: define describe_cleanup_mode Denton Liu
2019-03-21  6:54                 ` [PATCH v9 11/11] cherry-pick/revert: add scissors line on merge conflict Denton Liu
2019-04-17 10:23                 ` [PATCH v10 00/10] Fix scissors bug during conflict Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 01/10] t7600: clean up style Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 02/10] t3507: " Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 03/10] t7604: " Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 04/10] t7502: " Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 05/10] commit: extract cleanup_mode functions to sequencer Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 06/10] parse-options.h: extract common --cleanup option Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 07/10] merge: cleanup messages like commit Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 08/10] merge: add scissors line on merge conflict Phillip Wood
2019-04-17 10:23                   ` [PATCH v10 09/10] sequencer.c: save and restore cleanup mode Phillip Wood
2019-04-17 17:02                     ` Denton Liu
2019-04-17 19:53                       ` Phillip Wood
2019-04-18 17:21                       ` Denton Liu
2019-04-17 10:23                   ` [PATCH v10 10/10] cherry-pick/revert: add scissors line on merge conflict Phillip Wood
2019-04-18  5:19                   ` [PATCH v10 00/10] Fix scissors bug during conflict Junio C Hamano
2019-04-18  9:14                     ` Phillip Wood
     [not found] ` <cover.1542380865.git.liu.denton@gmail.com>
2018-11-16 15:19   ` [PATCH v2 1/2] commit: don't add scissors line if one exists in MERGE_MSG Denton Liu
2018-11-17  8:06     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190318030220.GA14098@archbookpro.localdomain \
    --to=liu.denton@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=sunshine@sunshineco.com \
    --cc=szeder.dev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).