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