git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Add testcase for merging in a CRLF repo, showing that conflict file is in LF only

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Jun 9, 2008, 15:05 UTC
Message-ID
<484D46D6.9040900@viscovery.net>
In-Reply-To
<484D424C.3010002@trolltech.com>
Marius Storm-Olsen schrieb:
Show 19 quoted lines
> Johannes Sixt said the following on 09.06.2008 15:37:
>> Marius Storm-Olsen schrieb:
>>> An LF only conflict file results in the resolved file being in LF,
>>> the commit is in LF and a warning saying that LF will be replaced
>>> by CRLF, and the working dir ends up with a mix of CRLF and LF files.
>>
>> After reading these 3 lines I've no idea what you are talking about. Can
>> you translate this to English, please? ;-)
> 
> Certainly :-)
> It means that if you work on a repo with core.autocrlf == true, you'd
> expect every text file to have CRLF EOLs. However, if you by some
> operation, get a conflict, then the conflicted file has LF EOLs.
> Now, of course you'd go about resolving the files conflict, and then
> 'git add <file>'. When you do that, you'll get the warning saying that
> LF will be replaced by CRLF. Then you commit. The end result is that you
> have a workingdir with a mix of LF and CRLF files, which after some more
> operations may trigger a "whole file changed" diff, due to the
> workingdir file now having LF EOLs.
Aha! Care to write it this way in the commit message in the next round? ;)
Show 9 quoted lines
>>>  Sorry, no patch to actually *fix* the problem.
>>
>> Then you should use test_expect_failure instead of test_expect_success.
>> And maybe also mention it in the commit message.
> 
> Well, the test case is written in a way that it *should* pass (iow, it
> _expects_ a success), but it currently doesn't. So, the goal is that
> someone, who is more intimate with the code, can just run the testcase
> until it passes (fixing in between each run, of course ;-)

test_expect_failure has changed its meaning. It's now used to say precisly what you describe here.

It means: "We should expect this command sequence to complete successfully, but we know that there is a bug in a git command, and hence we must expect failure until it is fixed."

Such a test is marked as "still broken", and the test run is not interrupted. If the bug is fixed, the test is marked as "FIXED" until the 'test_expect_failure' is turned into 'test_expect_success'.

Show 9 quoted lines
>>> +test_expect_success 'Check that conflict file is CRLF' '
>>> +    git reset --hard a &&
>>> +    ! git merge side &&
>>
>>     test_must_fail git merge side &&
> 
> Ah, I checked a few other testcases, where I saw the ! construct. I
> don't mind changing it, if it's important. Does it add 'feature' to the
> testcase by using test_must_fail, instead of '!' ?

'! git cmd' says that any unusual exit is ok, even a segfault and incorrect usage. 'test_must_fail git cmd' says that only deliberate error exits are ok.

-- Hannes
Previous: Marius Storm-OlsenNext: Marius Storm-Olsen
Message 4 of 26 in “Add testcase for merging in a CRLF repo, showing that conflict file is in LF only”
  1. Add testcase for merging in a CRLF repo, showing that conflict file is in LF onlyMarius Storm-Olsen, Jun 9, 2008
  2. Johannes SixtJun 9, 2008
  3. Marius Storm-OlsenJun 9, 2008
  4. Johannes SixtJun 9, 2008
  5. Marius Storm-OlsenJun 9, 2008
  6. 1/2 Add testcase for merging in a CRLF repoJohannes Schindelin, Jun 9, 2008
  7. 2/2 merge-recursive: respect core.autocrlfJohannes Schindelin, Jun 9, 2008
  8. Junio C HamanoJun 9, 2008
  9. merge-recursive: respect core.autocrlfJohannes Schindelin, Jun 9, 2008
  10. Junio C HamanoJun 9, 2008
  11. Johannes SchindelinJun 9, 2008
  12. 0/2 Respecting core.autocrlf when showing objectsMarius Storm-Olsen, Jun 10, 2008
  13. 1/2 Add testcases for verifying that staged files in a conflict are CRLF, when core.autocrlf = trueMarius Storm-Olsen, Jun 10, 2008
  14. 2/2 Ensure that objects shown in a core.autocrlf = true repo have CRLF EOLsMarius Storm-Olsen, Jun 10, 2008
  15. Johannes SchindelinJun 10, 2008
  16. Junio C HamanoJun 10, 2008
  17. Marius Storm-OlsenJun 11, 2008
  18. Jakub NarebskiJun 11, 2008
  19. Johannes SchindelinJun 11, 2008
  20. Marius Storm-OlsenJun 12, 2008
  21. Junio C HamanoJun 12, 2008
  22. J. Bruce FieldsJun 12, 2008
  23. Jakub NarebskiJun 12, 2008
  24. Junio C HamanoJun 12, 2008
  25. Jon LoeligerJun 12, 2008
  26. Marius Storm-OlsenJun 12, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.