vscode-gitlens icon indicating copy to clipboard operation
vscode-gitlens copied to clipboard

Commit Composer incorrectly indicates working directory has changed on fetch

Open justinrobots opened this issue 4 months ago • 4 comments

User reported that they are seeing the warning message that the working directory has changed after a fetch even when nothing has changed.

Reported here.

justinrobots avatar Oct 14 '25 17:10 justinrobots

I can't reproduce this, so I will need more info from anyone who can:

-Workflows or automatic actions that run on fetch (via git config) -GitLens and GitLens (Git) output logs -Info about environment (vscode version, git version, etc.)

axosoft-ramint avatar Nov 06 '25 15:11 axosoft-ramint

@axosoft-ramint I'm having the same issue, though mine isn't triggered by a fetch.

https://github.com/user-attachments/assets/9ff9f59a-4a34-4965-b801-6bec36b5dfa1

Reloading the window/extension host then caused the same behaviour, but with the "index has changed" error instead.

It seems to have calmed down after a few more reloads (though the working directory warning appeared again when I opened my terminal to get the below values).

Versions
VS Code version: 1.105.0
GitLens version: v17.6.2
Git version: 2.39.5 (Apple Git-154)
GitLens (git) log
2025-11-07 12:06:18.797 [info] [2025-11-07 12:06:18.793] [          9ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.797 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.800 [info] [2025-11-07 12:06:18.800] [          6ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.800 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.815 [info] [2025-11-07 12:06:18.815] [         15ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.815 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.825 [info] [2025-11-07 12:06:18.825] [          9ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.825 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.826 [info] [2025-11-07 12:06:18.826] [          1ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.826 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.842 [info] [2025-11-07 12:06:18.842] [         15ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.842 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.859 [info] [2025-11-07 12:06:18.859] [         16ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.859 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.870 [info] [2025-11-07 12:06:18.870] [         11ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.870 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.873 [info] [2025-11-07 12:06:18.873] [          2ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.873 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.877 [info] [2025-11-07 12:06:18.877] [          3ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.877 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.883 [info] [2025-11-07 12:06:18.883] [          6ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.883 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.909 [info] [2025-11-07 12:06:18.909] [         25ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.909 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.921 [info] [2025-11-07 12:06:18.921] [         11ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.921 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:06:18.949 [info] [2025-11-07 12:06:18.949] [         27ms] [/path/to/project] git for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/ • FAILED
2025-11-07 12:06:18.949 [info] 
Canceled: Operation cancelled; command=/usr/bin/git -c core.quotepath=false -c color.ui=false for-each-ref --format=%1E%(refname)%1D%(objectname)%1D%(*objectname)%1D%(creatordate:iso8601)%1D%(authordate:iso8601)%1D%(subject)%1D refs/tags/

2025-11-07 12:07:52.128 [info] [2025-11-07 12:07:52.128] [        105ms] [/path/to/project] git log --format=%x1E%H%x1D%aN%x1D%aE%x1D%at%x1D%cN%x1D%cE%x1D%ct%x1D%P%x1D%D%x1D%B%x1D --numstat --summary -M --use-mailmap -m --no-min-parents -n1 a4edafde8b603d7f6313be285fe17345565d99da -- • FAILED
2025-11-07 12:07:52.128 [info] 
Error: fatal: bad object a4edafde8b603d7f6313be285fe17345565d99da
GitLens log
2025-11-07 12:07:48.816 [info] [2025-11-07 12:07:48.311] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 2b2d6d7^{commit}): fatal: Needed a single revision

[2025-11-07 12:07:48.359] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 34d6932^{commit}): fatal: Needed a single revision

[2025-11-07 12:07:48.381] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 90a22b6^{commit}): fatal: Needed a single revision

[2025-11-07 12:07:48.395] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false rev-parse --verify --end-of-options 25c3d368^{commit}): fatal: Needed a single revision


2025-11-07 12:07:52.343 [info] [2025-11-07 12:07:52.127] Warning(/usr/bin/git -c core.quotepath=false -c color.ui=false -c log.showSignature=false -c diff.renameLimit=0 log --format=%x1E%H%x1D%aN%x1D%aE%x1D%at%x1D%cN%x1D%cE%x1D%ct%x1D%P%x1D%D%x1D%B%x1D --numstat --summary -M --use-mailmap -m --no-min-parents -n1 a4edafde8b603d7f6313be285fe17345565d99da --): fatal: bad object a4edafde8b603d7f6313be285fe17345565d99da

[2025-11-07 12:07:52.128] [GIT          ] [/path/to/project] git log --format=%x1E%H%x1D%aN%x1D%aE%x1D%at%x1D%cN%x1D%cE%x1D%ct%x1D%P%x1D%D%x1D%B%x1D --numstat --summary -M --use-mailmap -m --no-min-parents -n1 a4edafde8b603d7f6313be285fe17345565d99da -- • bad object a4edafde8b603d7f6313be285fe17345565d99da [105ms]
[2025-11-07 12:07:52.128] Git.exec
Error: fatal: bad object a4edafde8b603d7f6313be285fe17345565d99da

2025-11-07 12:08:00.703 [info] [2025-11-07 12:08:00.198] [GIT   *7848ms] [/path/to/project] git log --stdin --format=%x1E%H%x1D --shortstat -n501 --date-order --all -- [*7848ms] (slow)

Hope this helps 😄

joemckie avatar Nov 07 '25 12:11 joemckie

This issue needs more information and has not had recent activity. Please provide the missing information or it will be closed in 7 days. Thanks!

github-actions[bot] avatar Nov 20 '25 05:11 github-actions[bot]

I noticed the “working directory has changed” warning appeared only when I had untracked files in my working directory. As soon as I ran git add . to stage them, the error disappeared, and the Commit Composer behaved normally.

Hope this helps — if you’re seeing this bug, try checking for untracked files and staging them before using the Commit Composer.

selbs avatar Nov 26 '25 10:11 selbs