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

Re: [PATCH 2/3] merge: use refresh_and_write_cache

From
MÅMartin Ågren <martin.agren@gmail.com>
Date
Aug 28, 2019, 15:52 UTC
Message-ID
<CAN0heSrs42hL7gmqMuugGLNOV8Vd9gxPcUiLA5oTXnhPEM-9qw@mail.gmail.com>
In-Reply-To
<20190827101408.76757-3-t.gummerer@gmail.com>
On Tue, 27 Aug 2019 at 12:15, Thomas Gummerer <t.gummerer@gmail.com> wrote:
Show 10 quoted lines
>         struct lock_file lock = LOCK_INIT;
>         const char *head_arg = "HEAD";
>
> -       hold_locked_index(&lock, LOCK_DIE_ON_ERROR);
> -       refresh_cache(REFRESH_QUIET);
> -       if (write_locked_index(&the_index, &lock,
> -                              COMMIT_LOCK | SKIP_IF_UNCHANGED))
> -               return error(_("Unable to write index."));
> +       if (refresh_and_write_cache(REFRESH_QUIET, COMMIT_LOCK | SKIP_IF_UNCHANGED) < 0)
> +               return -1;

I wondered why you didn't drop the `struct lock_file`, but it turns out we still need it further down.

>         if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree")) {
>                 int clean, x;

What you could do, I guess, is to move its declaration to around here. Probably not worth a re-roll.

Show 13 quoted lines
> @@ -860,13 +857,9 @@ static int merge_trivial(struct commit *head, struct commit_list *remoteheads)
>  {
>         struct object_id result_tree, result_commit;
>         struct commit_list *parents, **pptr = &parents;
> -       struct lock_file lock = LOCK_INIT;
>
> -       hold_locked_index(&lock, LOCK_DIE_ON_ERROR);
> -       refresh_cache(REFRESH_QUIET);
> -       if (write_locked_index(&the_index, &lock,
> -                              COMMIT_LOCK | SKIP_IF_UNCHANGED))
> -               return error(_("Unable to write index."));
> +       if (refresh_and_write_cache(REFRESH_QUIET, COMMIT_LOCK | SKIP_IF_UNCHANGED) < 0)
> +               return -1;
Here you do drop the `struct lock_file` entirely, ok.
Martin
Previous: Thomas GummererNext: Thomas Gummerer
Message 3 of 29 in “make sure stash refreshes the index properly”
  1. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Aug 27, 2019
  2. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Aug 27, 2019
  3. Martin ÅgrenAug 28, 2019
  4. Thomas GummererAug 29, 2019
  5. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Aug 27, 2019
  6. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Aug 27, 2019
  7. Martin ÅgrenAug 28, 2019
  8. Thomas GummererAug 29, 2019
  9. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Aug 29, 2019
  10. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Aug 29, 2019
  11. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Aug 29, 2019
  12. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Aug 29, 2019
  13. Martin ÅgrenAug 30, 2019
  14. Junio C HamanoAug 30, 2019
  15. Thomas GummererSep 2, 2019
  16. Junio C HamanoSep 3, 2019
  17. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Sep 3, 2019
  18. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Sep 3, 2019
  19. Junio C HamanoSep 5, 2019
  20. Thomas GummererSep 6, 2019
  21. Johannes SchindelinSep 11, 2019
  22. Thomas GummererSep 11, 2019
  23. Junio C HamanoSep 12, 2019
  24. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Sep 3, 2019
  25. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Sep 3, 2019
  26. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Sep 11, 2019
  27. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Sep 11, 2019
  28. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Sep 11, 2019
  29. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Sep 11, 2019

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.