Skip to content

Align ctime/atime with mtime in inode attrs#17

Closed
ThoolooExpress wants to merge 1 commit into
cloudflare:mainfrom
ThoolooExpress:richard.morrill/fix-git-status-shows-all
Closed

Align ctime/atime with mtime in inode attrs#17
ThoolooExpress wants to merge 1 commit into
cloudflare:mainfrom
ThoolooExpress:richard.morrill/fix-git-status-shows-all

Conversation

@ThoolooExpress

@ThoolooExpress ThoolooExpress commented May 4, 2026

Copy link
Copy Markdown

Partial fix for #16.

Mirror mtime onto atime and ctime in FUSE inode attrs. Leaving them as time.Time{} produces a year-1 zero that overflows when serialized into the FUSE attr struct, and a ctime that disagrees with what git stored makes git's stat-cache treat every base file as potentially modified.

This addresses one of two causes of the "all files modified on fresh blobless-clone mount" symptom. The size=0 cause and the slowness of git's resulting content-check pass are addressed in follow-up PRs.

🤖 Partially created with Claude code

Mirror `mtime` onto `atime` and `ctime` in FUSE inode attrs. Leaving them as `time.Time{}` produces a year-1 zero that overflows when serialized into the FUSE attr struct, and a `ctime` that disagrees with what git stored makes git's stat-cache treat every base file as potentially modified.

This addresses one of two causes of the "all files modified on fresh blobless-clone mount" symptom. The size=0 cause and the slowness of git's resulting content-check pass are addressed in follow-up PRs.
@ThoolooExpress ThoolooExpress force-pushed the richard.morrill/fix-git-status-shows-all branch from b02a691 to c8c0c29 Compare May 4, 2026 19:11
@ThoolooExpress ThoolooExpress changed the title fix: git status shows all files modified on fresh blobless-clone mount Align ctime/atime with mtime in inode attrs May 4, 2026
@ThoolooExpress ThoolooExpress marked this pull request as ready for review May 4, 2026 20:55
@elithrar

elithrar commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Closing this as superseded by #20. PR #20 keeps the non-zero base attr timestamp behavior from this change, then extends the fix to preserve separate overlay ctime and cover the related stat-cache/rename reconciliation cases.

@elithrar

elithrar commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Closing as superseded by #20.

@elithrar elithrar closed this Jun 8, 2026
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