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

Re: [PATCH v5] describe: refresh the index when 'broken' flag is used

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 26, 2024, 14:59 UTC
Message-ID
<xmqqmsn7698h.fsf@gitster.g>
In-Reply-To
<CAOLa=ZRz2KEGiBnX1YP6JG1nXXHLfw9A3dHKO3s_ViLhq+bWww@mail.gmail.com>
Karthik Nayak <karthik.188@gmail.com> writes:
Show 13 quoted lines
>> +		cat file >file.new &&
>> +		mv file.new file &&
>> +		git describe --dirty >actual &&
>> +		echo "A" >expected &&
>> +		test_cmp expected actual &&
>> +
>> +		cat file >file.new &&
>> +		mv file.new file &&
>> +		git describe --dirty --broken >actual &&
>> +		echo "A" >expected &&
>> +		test_cmp expected actual
>
> Not worth a reroll, but you don't have to create file.new twice.

I think you have to make the "file" stat-dirty again after the first test, as a successful first test _should_ refresh the index (and that was why my manual illustration in an earlier message <xmqqsex2b4ti.fsf@gitster.g> did "--dirty --broken" first before "--dirty" alone, knowing that the former fails to refresh the index).

You are right to point out that the expected results for "--dirty" and "--dirty --broken" are the same and we do not have to create it twice, though.

If the filesystem has a usable inode number, then replacing "file" with a copy, i.e. "cat file >file.new && mv file.new file", is an excellent way to ensure that the stat data becomes dirty even when it is done as a part of a quick series of commands. But not all filesystems we run our tests on may have usable inode number, so it may not be the best thing to do in an automated test. We could use "test-tool chmtime" instead, perhaps like:

    ... make the index and the working tree are clean wrt HEAD ...
    # we do not expect -dirty suffix in the output
    echo A >expect &&
    # make "file" stat-dirty
    test-tool chmtime -10 file &&
    # "describe --dirty" refreshes and does not get fooled
    git describe --dirty >actual &&
    test_cmp expect actual &&
    # make "file" stat-dirty again
    test-tool chmtime -10 file &&
    # "describe --dirty --broken" refreshes and does not get fooled
    git describe --dirty --broken >actual &&
    test_cmp expect actual

with the extra comments stripped (I added them only to explain what is going on to the readers of this e-mail message).

Previous: Karthik NayakNext: Junio C Hamano
Message 21 of 32 in “describe: refresh the index when 'broken' flag is used”
  1. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 25, 2024
  2. Junio C HamanoJun 25, 2024
  3. Junio C HamanoJun 25, 2024
  4. Karthik NayakJun 26, 2024
  5. Abhijeet SonarJun 26, 2024
  6. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  7. Abhijeet SonarJun 26, 2024
  8. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  9. Karthik NayakJun 26, 2024
  10. Abhijeet SonarJun 26, 2024
  11. Re* [PATCH v5] describe: refresh the index when 'broken' flag is usedJunio C Hamano, Jun 26, 2024
  12. Junio C HamanoJun 26, 2024
  13. Abhijeet SonarJun 26, 2024
  14. Junio C HamanoJun 26, 2024
  15. Junio C HamanoJun 26, 2024
  16. Abhijeet SonarJun 26, 2024
  17. Junio C HamanoJun 26, 2024
  18. Jeff KingJun 26, 2024
  19. Jeff KingJun 27, 2024
  20. Karthik NayakJun 26, 2024
  21. Junio C HamanoJun 26, 2024
  22. Junio C HamanoJun 26, 2024
  23. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  24. Abhijeet SonarJun 26, 2024
  25. Abhijeet SonarJun 27, 2024
  26. Junio C HamanoJun 27, 2024
  27. Abhijeet SonarJun 27, 2024
  28. Karthik NayakJun 30, 2024
  29. Junio C HamanoJul 1, 2024
  30. Karthik NayakJul 2, 2024
  31. Junio C HamanoJul 3, 2024
  32. Karthik NayakJul 3, 2024

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.