From: Elijah Newren <newren@gmail.com>
To: Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Cc: "Git Mailing List" <git@vger.kernel.org>,
"Nguyễn Thái Ngọc" <pclouds@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Derrick Stolee" <derrickstolee@github.com>,
"Derrick Stolee" <dstolee@microsoft.com>
Subject: Re: [PATCH 12/12] update-index: remove ce_match_stat(), all macros
Date: Fri, 1 Jan 2021 13:12:25 -0800 [thread overview]
Message-ID: <CABPp-BEPDpagENsmx=8gJ9SqUFrD+mh87WbLnV1mpgtFz56qVg@mail.gmail.com> (raw)
In-Reply-To: <8fb307c3bee9a33ad408bba6c422e992fb1e2656.1609506428.git.gitgitgadget@gmail.com>
On Fri, Jan 1, 2021 at 5:12 AM Derrick Stolee via GitGitGadget
<gitgitgadget@gmail.com> wrote:
>
> From: Derrick Stolee <dstolee@microsoft.com>
>
> The final index compatibility macro to remove from the update-index
> builtin is ce_match_state(). Further, this is the last use of that macro
I think you mean ce_match_stat(); no trailing 'e'.
> anywhere, so it should be removed.
>
> There are some remaining references in the racy-git.txt technical
> document that are updated to ie_match_stat().
>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
> Documentation/technical/racy-git.txt | 6 +++---
> builtin/update-index.c | 3 +--
> cache.h | 1 -
> 3 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/technical/racy-git.txt b/Documentation/technical/racy-git.txt
> index ceda4bbfda4..65188e04559 100644
> --- a/Documentation/technical/racy-git.txt
> +++ b/Documentation/technical/racy-git.txt
> @@ -26,7 +26,7 @@ information obtained from the filesystem via `lstat(2)` system
> call when they were last updated. When checking if they differ,
> Git first runs `lstat(2)` on the files and compares the result
> with this information (this is what was originally done by the
> -`ce_match_stat()` function, but the current code does it in
> +`ie_match_stat()` function, but the current code does it in
Even updating the documentation... :-)
Arguably, this change should have been done years ago when
ce_match_stat was turned into a macro, but certainly becomes more
important with your patch that removes the macro.
> `ce_match_stat_basic()` function). If some of these "cached
> stat information" fields do not match, Git can tell that the
> files are modified without even looking at their contents.
> @@ -102,7 +102,7 @@ timestamp as the index file itself.
>
> The callers that want to check if an index entry matches the
> corresponding file in the working tree continue to call
> -`ce_match_stat()`, but with this change, `ce_match_stat()` uses
> +`ie_match_stat()`, but with this change, `ie_match_stat()` uses
> `ce_modified_check_fs()` to see if racily clean ones are
> actually clean after comparing the cached stat information using
> `ce_match_stat_basic()`.
> @@ -128,7 +128,7 @@ Runtime penalty
> ---------------
>
> The runtime penalty of falling back to `ce_modified_check_fs()`
> -from `ce_match_stat()` can be very expensive when there are many
> +from `ie_match_stat()` can be very expensive when there are many
> racily clean entries. An obvious way to artificially create
> this situation is to give the same timestamp to all the files in
> the working tree in a large project, run `git update-index` on
> diff --git a/builtin/update-index.c b/builtin/update-index.c
> index 4da0c169dc7..256df43ecbd 100644
> --- a/builtin/update-index.c
> +++ b/builtin/update-index.c
> @@ -3,7 +3,6 @@
> *
> * Copyright (C) Linus Torvalds, 2005
> */
> -#define USE_THE_INDEX_COMPATIBILITY_MACROS
> #include "cache.h"
> #include "config.h"
> #include "lockfile.h"
> @@ -277,7 +276,7 @@ static int add_one_path(const struct cache_entry *old, const char *path, int len
> struct cache_entry *ce;
>
> /* Was the old index entry already up-to-date? */
> - if (old && !ce_stage(old) && !ce_match_stat(old, st, 0))
> + if (old && !ce_stage(old) && !ie_match_stat(istate, old, st, 0))
> return 0;
>
> ce = make_empty_cache_entry(istate, len);
> diff --git a/cache.h b/cache.h
> index dfcbc4923e2..2925bf050b8 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -416,7 +416,6 @@ extern struct index_state the_index;
> #define chmod_cache_entry(ce, flip) chmod_index_entry(&the_index, (ce), (flip))
> #define refresh_cache(flags) refresh_index(&the_index, (flags), NULL, NULL, NULL)
> #define refresh_and_write_cache(refresh_flags, write_flags, gentle) repo_refresh_and_write_index(the_repository, (refresh_flags), (write_flags), (gentle), NULL, NULL, NULL)
> -#define ce_match_stat(ce, st, options) ie_match_stat(&the_index, (ce), (st), (options))
> #define ce_modified(ce, st, options) ie_modified(&the_index, (ce), (st), (options))
> #define cache_dir_exists(name, namelen) index_dir_exists(&the_index, (name), (namelen))
> #define cache_name_is_other(name, namelen) index_name_is_other(&the_index, (name), (namelen))
The rest looks good.
next prev parent reply other threads:[~2021-01-01 21:16 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-01 13:06 [PATCH 00/12] Remove more index compatibility macros Derrick Stolee via GitGitGadget
2021-01-01 13:06 ` [PATCH 01/12] merge-index: drop " Derrick Stolee via GitGitGadget
2021-01-03 23:31 ` Alban Gruin
2021-01-04 11:08 ` Derrick Stolee
2021-01-01 13:06 ` [PATCH 02/12] mv: remove " Derrick Stolee via GitGitGadget
2021-01-01 13:06 ` [PATCH 03/12] rm: remove compatilibity macros Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 04/12] update-index: drop the_index, the_repository Derrick Stolee via GitGitGadget
2021-01-01 21:05 ` Elijah Newren
2021-01-04 0:56 ` Derrick Stolee
2021-01-01 13:07 ` [PATCH 05/12] update-index: use istate->cache over active_cache Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 06/12] update-index: use index->cache_nr over active_nr Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 07/12] update-index: use istate->cache_changed Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 08/12] update-index: use index_name_pos() over cache_name_pos() Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 09/12] update-index: use remove_file_from_index() Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 10/12] update-index: use add_index_entry() Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 11/12] update-index: replace several compatibility macros Derrick Stolee via GitGitGadget
2021-01-01 13:07 ` [PATCH 12/12] update-index: remove ce_match_stat(), all macros Derrick Stolee via GitGitGadget
2021-01-01 21:12 ` Elijah Newren [this message]
2021-01-01 21:16 ` [PATCH 00/12] Remove more index compatibility macros Elijah Newren
2021-01-02 6:12 ` Eric Sunshine
2021-01-04 1:01 ` Derrick Stolee
2021-01-04 6:22 ` Eric Sunshine
2021-01-05 4:41 ` Derrick Stolee
2021-01-05 4:42 ` [PATCH v2 00/14] " Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 01/14] mv: remove " Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 02/14] rm: remove compatilibity macros Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 03/14] update-index: drop the_index, the_repository Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 04/14] update-index: use istate->cache over active_cache Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 05/14] update-index: use index->cache_nr over active_nr Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 06/14] update-index: use istate->cache_changed Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 07/14] update-index: use index_name_pos() over cache_name_pos() Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 08/14] update-index: use remove_file_from_index() Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 09/14] update-index: use add_index_entry() Derrick Stolee via GitGitGadget
2021-01-05 4:42 ` [PATCH v2 10/14] update-index: replace several compatibility macros Derrick Stolee via GitGitGadget
2021-01-05 4:43 ` [PATCH v2 11/14] update-index: remove ce_match_stat(), all macros Derrick Stolee via GitGitGadget
2021-01-05 4:43 ` [PATCH v2 12/14] update-index: reduce static globals, part 1 Derrick Stolee via GitGitGadget
2021-01-05 4:43 ` [PATCH v2 13/14] update-index: reduce static globals, part 2 Derrick Stolee via GitGitGadget
2021-01-05 4:43 ` [PATCH v2 14/14] update-index: remove static globals from callbacks Derrick Stolee via GitGitGadget
2021-01-07 5:09 ` Eric Sunshine
2021-01-07 11:19 ` Derrick Stolee
2021-01-07 18:53 ` Eric Sunshine
2021-01-07 19:57 ` Junio C Hamano
2021-01-08 1:52 ` Derrick Stolee
2021-01-08 20:02 ` [PATCH v3 00/14] Remove more index compatibility macros Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 01/14] mv: remove " Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 02/14] rm: remove compatilibity macros Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 03/14] update-index: drop the_index, the_repository Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 04/14] update-index: use istate->cache over active_cache Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 05/14] update-index: use istate->cache_nr over active_nr Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 06/14] update-index: use istate->cache_changed Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 07/14] update-index: use index_name_pos() over cache_name_pos() Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 08/14] update-index: use remove_file_from_index() Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 09/14] update-index: use add_index_entry() Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 10/14] update-index: replace several compatibility macros Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 11/14] update-index: remove ce_match_stat(), all macros Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 12/14] update-index: reduce static globals, part 1 Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 13/14] update-index: reduce static globals, part 2 Derrick Stolee via GitGitGadget
2021-01-08 20:02 ` [PATCH v3 14/14] update-index: remove static globals from callbacks Derrick Stolee via GitGitGadget
2021-01-10 7:03 ` [PATCH v3 00/14] Remove more index compatibility macros Junio C Hamano
2021-01-10 7:32 ` Eric Sunshine
2021-01-10 11:57 ` Derrick Stolee
2021-01-25 13:04 ` Derrick Stolee
2021-01-06 3:55 ` [PATCH 00/12] " Junio C Hamano
2021-01-06 11:35 ` Derrick Stolee
2021-01-06 20:52 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CABPp-BEPDpagENsmx=8gJ9SqUFrD+mh87WbLnV1mpgtFz56qVg@mail.gmail.com' \
--to=newren@gmail.com \
--cc=derrickstolee@github.com \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).