Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scalar: enable untracked cache unconditionally #415

Merged

Conversation

derrickstolee
Copy link
Collaborator

@derrickstolee derrickstolee commented Aug 26, 2021

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

  1. Scalar enables the untracked cache unconditionally via core.untrackedCache = true. This was previously set to false on Windows.
  2. Set GIT_FORCE_UNTRACKED_CACHE=1 for the Scalar functional tests.
  3. Update the core.untrackedCache config variable to be as strong as the GIT_FORCE_UNTRACKED_CACHE environment variable.

@derrickstolee derrickstolee self-assigned this Aug 26, 2021
@derrickstolee derrickstolee marked this pull request as ready for review August 30, 2021 20:47
@dscho
Copy link
Member

dscho commented Sep 1, 2021

This is a successor of #382 and #383, right?

I just tried to rebase #383's branch onto vfs-2.33.0 and the Scalar Functional Tests failed: https://github.com/dscho/git/runs/3483431139?check_suite_focus=true

The diff between #383's errors and my rebased branch's errors is empty...

@derrickstolee
Copy link
Collaborator Author

This is a successor of #382 and #383, right?

Yes.

I just tried to rebase #383's branch onto vfs-2.33.0 and the Scalar Functional Tests failed: https://github.com/dscho/git/runs/3483431139?check_suite_focus=true

The diff between #383's errors and my rebased branch's errors is empty...

So your rebased branch does the following:

  1. Enable untracked cache.
  2. Disable FS Monitor.
  3. Disable FS Cache.

And with those, you get a failure. I will try one thing, which is to disable the FS Monitor and see if that leads to a failure. I don't expect that we will be disabling the FS Cache.

@derrickstolee
Copy link
Collaborator Author

So we got a failure with FOR TESTING: disable fs monitor 0db094f. This means that the FS Monitor feature is causing the untracked cache to work correctly (because it signals that we should go into those directories to find untracked files).

This means that in the case of a trivial response from the FS Monitor we might hit the untracked cache issue where the filesystem doesn't properly report a dir's mtime. Is the simultaneous failure of both systems rare enough to recommend untracked cache with FS Monitor?

cc: @jeffhostetler for thoughts here.

@@ -156,23 +156,7 @@ static int set_recommended_config(int reconfigure)
{ "core.FSCache", "true", 1 },
{ "core.multiPackIndex", "true", 1 },
{ "core.preloadIndex", "true", 1 },
#ifndef WIN32
{ "core.untrackedCache", "true", 1 },
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this sets overwrite_on_reconfigure, our users will upgrade successfully.

@derrickstolee
Copy link
Collaborator Author

Ping @dscho, @jeffhostetler. I believe we agreed to merge this. Anyone want to provide a ✔️ ?

Copy link
Member

@dscho dscho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good.

It is a nice validation of the value of the FSMonitor patch series that this side-steps the issues that prevent the untracked cache from working properly.

And I am super excited that we can enable this for our users, it provides for such a boost in speed.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
The GIT_FORCE_UNTRACKED_CACHE environment variable write the untracked
cache more frequently than the core.untrackedCache config variable. This
is due to how read_directory() handles the creation of an untracked
cache. The old mechanism required using something like 'git update-index
--untracked-cache' before the index would actually contain an untracked
cache. This was noted as a performance problem on macOS in the past, and
this is the resolution for that issue.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
@derrickstolee derrickstolee merged commit b8a803e into microsoft:vfs-2.33.0 Sep 7, 2021
dscho pushed a commit that referenced this pull request Oct 30, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
derrickstolee added a commit that referenced this pull request Oct 30, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
derrickstolee added a commit that referenced this pull request Oct 31, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
derrickstolee added a commit that referenced this pull request Nov 4, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
derrickstolee added a commit that referenced this pull request Nov 4, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
derrickstolee added a commit that referenced this pull request Nov 10, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
derrickstolee added a commit that referenced this pull request Nov 15, 2021
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 12, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 19, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 20, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 20, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 20, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 20, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 20, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 20, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 25, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
ldennington pushed a commit to ldennington/git that referenced this pull request Jan 25, 2022
…nditionally

No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
dscho pushed a commit that referenced this pull request Feb 1, 2022
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
dscho pushed a commit that referenced this pull request Jun 17, 2022
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
dscho pushed a commit that referenced this pull request Jun 17, 2022
No matter what I try, I cannot get the untracked cache to fail on Windows. Here are the things that are done in this pull request:

1. Scalar enables the untracked cache unconditionally via `core.untrackedCache = true`. This was previously set to `false` on Windows.
2. Set `GIT_FORCE_UNTRACKED_CACHE=1` for the Scalar functional tests.
3. Update the `core.untrackedCache` config variable to be as strong as the `GIT_FORCE_UNTRACKED_CACHE` environment variable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants