Re: [PATCH v1] git-mv: allow submodules and fsmonitor to work together
- From
Stefan Beller <sbeller@google.com>
- Date
- Sep 10, 2018, 17:07 UTC
- Message-ID
- <CAGZ79kZmmULJHrPJS1=areXAP-nSK0_9UOUOry2Hd6aHSBrAiQ@mail.gmail.com>
- In-Reply-To
- <20180910162911.31920-1-benpeart@microsoft.com>
On Mon, Sep 10, 2018 at 9:29 AM Ben Peart <benpeart@microsoft.com> wrote:
Show 8 quoted lines
> > It was reported that > > GIT_FSMONITOR_TEST=$PWD/t7519/fsmonitor-all ./t7411-submodule-config.sh > > breaks as the fsmonitor data is out of sync with the state of the .gitmodules > file. Update is_staging_gitmodules_ok() so that it no longer tells > ie_match_stat() to ignore refreshing the fsmonitor data.
Wondering how this came to be, 7da9aba4178 (submodule: used correct index in is_staging_gitmodules_ok, 2017-12-12) last touched this line, but is unrelated as the fsmonitor behavior was there before.
Before that, we have 883e248b8a0 (fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files., 2017-09-22) that was written by you, who knows the fsmonitor better than I do (or Brandon who wrote the commit referenced above).
Looking through the archive, it seems that we might have more such hidden gems?
https://public-inbox.org/git/f50825a4-fa15-9f28-a079-853e78ee8e2e@gmail.com/
Anyway, I think this is a better fix than what I proposed for sure.
Thanks for looking into this!
Stefan
Show 33 quoted lines
>
> Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> Helped-by: Stefan Beller <sbeller@google.com>
> Signed-off-by: Ben Peart <benpeart@microsoft.com>
> ---
>
> Notes:
> Base Ref: v2.19.0-rc2
> Web-Diff: https://github.com/benpeart/git/commit/ed30e1a885
> Checkout: git fetch https://github.com/benpeart/git fsmonitor-t7411-v1 && git checkout ed30e1a885
>
> submodule.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/submodule.c b/submodule.c
> index 50cbf5f13e..1e7194af28 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -65,8 +65,7 @@ int is_staging_gitmodules_ok(struct index_state *istate)
> if ((pos >= 0) && (pos < istate->cache_nr)) {
> struct stat st;
> if (lstat(GITMODULES_FILE, &st) == 0 &&
> - ie_match_stat(istate, istate->cache[pos], &st,
> - CE_MATCH_IGNORE_FSMONITOR) & DATA_CHANGED)
> + ie_match_stat(istate, istate->cache[pos], &st, 0) & DATA_CHANGED)
> return 0;
> }
>
>
> base-commit: c05048d43925ab8edcb36663752c2b4541911231
> --
> 2.18.0.windows.1
>