You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Drafting a commit message leaves the staged files' objects in the repository #34594
In a repository, change or add a file (for example a large generated file or dataset).
Run the Commit action with an empty message, so T3 prepares the commit context
(prepareCommitContext) to generate one.
Let the generation fail or stop it before the commit runs (for example, the text-generation
provider is signed out or offline).
Run git cat-file -e $(git hash-object <file>).
Expected behavior
Preparing the context uses a temporary index, so without a commit the repository is unchanged.
Actual behavior
The object exists, unreachable. prepareCommitContext sets only GIT_INDEX_FILE to a temporary index and runs git add -A, and git add writes every staged blob into the repository's object store. When the commit
follows, it needs those blobs anyway; when it does not, they stay as unreachable loose objects, and
each attempt after the file changes adds another copy. gc prunes them only when maintenance runs
and they are older than its expiry (two weeks by default). For large generated files or datasets
that is their compressed size, close to the file size for data that does not compress, and later
maintenance (a cruft repack) has to read all of it.
Activity