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

Re: [PATCH 1/3] cache-tree: Create/update cache-tree on checkout

From
Duy Nguyen <pclouds@gmail.com>
Date
Jun 29, 2014, 03:33 UTC
Message-ID
<CACsJy8D8687QULRBZF_hvwASxOy5ekuPJ997xLSDX6HXDXgZnA@mail.gmail.com>
In-Reply-To
<1403914856-3546-1-git-send-email-dturner@twitter.com>
On Sat, Jun 28, 2014 at 7:20 AM, David Turner <dturner@twopensource.com> wrote:
Show 23 quoted lines
> When git checkout checks out a branch, create or update the
> cache-tree so that subsequent operations are faster.
>
> Signed-off-by: David Turner <dturner@twitter.com>
> ---
>  builtin/checkout.c    |  4 ++++
>  cache-tree.c          | 22 ++++++++++++----------
>  cache-tree.h          |  1 +
>  t/t0090-cache-tree.sh | 15 ++++++++++++++-
>  4 files changed, 31 insertions(+), 11 deletions(-)
>
> diff --git a/builtin/checkout.c b/builtin/checkout.c
> index 07cf555..df791e8 100644
> --- a/builtin/checkout.c
> +++ b/builtin/checkout.c
> @@ -553,6 +553,10 @@ static int merge_working_tree(const struct checkout_opts *opts,
>                 }
>         }
>
> +       if (write_cache_as_tree(NULL, WRITE_TREE_DO_NOT_WRITE, "")) {
> +               warn("Unable to write cache_tree");
> +       }
> +

I wonder if we should do this in !opts->force code path only. In the opts->force code path we could use prime_cache_tree() (like read-tree), which is supposedly faster (but may need some tests to be sure). prime_cache_tree() could be made a bit faster by doing it during tree traversal in unpack_trees() so we don't have to unpack any tree objects twice.

-- 
Duy
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 7 in “cache-tree: Create/update cache-tree on checkout”
  1. 1/3 cache-tree: Create/update cache-tree on checkoutDavid Turner, Jun 28, 2014
  2. 2/3 test-dump-cache-tree: Improve output format and exit codeDavid Turner, Jun 28, 2014
  3. 3/3 cache-tree: Write index with updated cache-tree after commitDavid Turner, Jun 28, 2014
  4. Junio C HamanoJun 30, 2014
  5. Duy NguyenJun 29, 2014
  6. Junio C HamanoJun 30, 2014
  7. Junio C HamanoJun 30, 2014

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.