Re: [PATCH v2 1/1] merge-file: let conflict markers match end-of-line style of the context
- From
Ramsay Jones <ramsay@ramsayjones.plus.com>
- Date
- Jan 25, 2016, 19:45 UTC
- Message-ID
- <56A67B6F.60300@ramsayjones.plus.com>
- In-Reply-To
- <alpine.DEB.2.20.1601250749580.2964@virtualbox>
On 25/01/16 06:53, Johannes Schindelin wrote:
Show 40 quoted lines
> Hi Torsten, > > On Sun, 24 Jan 2016, Torsten Bögershausen wrote: > >> On 24.01.16 11:48, Johannes Schindelin wrote: >> (I had the same reasoning about the CRLF in the working tree: >> We don't need to look at core.autocrlf/attributes, so Ack from me) >> >>> +test_expect_success 'conflict markers match existing line endings' ' >>> + append_cr <nolf-orig.txt >crlf-orig.txt && >>> + append_cr <nolf-diff1.txt >crlf-diff1.txt && >>> + append_cr <nolf-diff2.txt >crlf-diff2.txt && >>> + test_must_fail git -c core.eol=crlf merge-file -p \ >>> + crlf-diff1.txt crlf-orig.txt crlf-diff2.txt >crlf.txt && >>> + test $(tr "\015" Q <crlf.txt | grep "\\.txtQ$" | wc -l) = 3 && >>> + test_must_fail git -c core.eol=crlf merge-file -p \ >>> + nolf-diff1.txt nolf-orig.txt nolf-diff2.txt >nolf.txt && >>> + test $(tr "\015" Q <nolf.txt | grep "\\.txtQ$" | wc -l) = 0 >>> +' >>> + >> >> Minor remark: >> >> Ramsay suggested a test that doesn't use grep or wc and looks like this: >> >> test_expect_success 'conflict markers contain CRLF when core.eol=crlf' ' >> test_must_fail git -c core.eol=crlf merge-file -p \ >> nolf-diff1.txt nolf-orig.txt nolf-diff2.txt >output.txt && >> tr "\015" Q <output.txt | sed -n "/^[<=>|].*Q$/p" >out.txt && >> cat >expect.txt <<-\EOF && >> <<<<<<< nolf-diff1.txtQ >> ||||||| nolf-orig.txtQ >> =======Q >> >>>>>>> nolf-diff2.txtQ >> EOF >> test_cmp expect.txt out.txt >> ' > > Probably he wrapped it at less than 192 columns per row, though ;-) >
;-)
> Seriously again, this longer version might test more, but it definitely > also tests more than what I actually want to test: I am simply interested > to verify that the conflict markers end in CR/LF when appropriate.
But you are only testing 3/4 conflict markers end in CR/LF. :-D
> Read: I > am uncertain that I want to spend the additional lines on testing more > than actually necessary.
If the here doc is too verbose for you, how about something like this (totally untested):
test $(tr "\015" Q <crlf.txt | grep "^[<=>|].*Q$" | wc -l) -eq 4
instead?
HTH
ATB, Ramsay Jones