microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.75k stars 29.1k forks source link

Git stash & checkout is not working #170693

Closed Omcsesz closed 1 year ago

Omcsesz commented 1 year ago

Type: Bug

Hello, Team!

When I want to stash & checkout to another branch, I get an error message (see attachment). Can you please support? StashAndCheckoutNotWorking

VS Code version: Code 1.74.2 (e8a3071ea4344d9d48ef8a4df2c097372b0c5161, 2022-12-20T10:29:14.590Z) OS version: Windows_NT x64 10.0.19045 Modes: Sandboxed: No

System Info |Item|Value| |---|---| |CPUs|11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz (8 x 2803)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off| |Load (avg)|undefined| |Memory (System)|31.75GB (3.40GB free)| |Process Argv|--crash-reporter-id c2d76645-3789-47da-a678-f1fbfbb015bc| |Screen Reader|no| |VM|0%|
Extensions (35) Extension|Author (truncated)|Version ---|---|--- project-manager|ale|12.7.0 ng-template|Ang|15.0.4 asciidoctor-vscode|asc|2.9.8 vscode-tailwindcss|bra|0.9.4 npm-intellisense|chr|1.4.4 path-intellisense|chr|2.8.4 gitignore|cod|0.9.0 font-preview|ctc|2.2.1 vscode-eslint|dba|2.2.6 githistory|don|0.6.19 gitlens|eam|13.2.0 vscode-html-css|ecm|1.13.1 EditorConfig|Edi|0.16.4 prettier-vscode|esb|9.10.3 vscode-firefox-debug|fir|2.9.8 code-runner|for|0.11.8 angular-essentials|joh|13.0.0 Angular2|joh|13.0.0 vscode-peacock|joh|4.2.2 git-graph|mhu|1.30.0 vscode-scss|mrm|0.10.0 vscode-docker|ms-|1.23.3 csharp|ms-|1.25.2 remote-containers|ms-|0.266.1 material-icon-theme|PKi|4.23.1 tsimporter|pmn|2.0.1 vscode-xml|red|0.23.0 svg-preview|Sim|2.8.3 vscode-csstree|sme|1.1.0 sonarlint-vscode|Son|3.13.0 code-spell-checker|str|2.12.0 move-ts|str|1.12.0 vscode-icons|vsc|12.0.1 gitblame|wad|10.1.0 vscode-open-in-github|ziy|1.3.6 (1 theme extensions excluded)
A/B Experiments ``` vsliv368:30146709 vsreu685:30147344 python383cf:30185419 vspor879:30202332 vspor708:30202333 vspor363:30204092 vslsvsres303:30308271 pythonvspyl392:30443607 vserr242cf:30382550 pythontb:30283811 vsjup518:30340749 pythonptprofiler:30281270 vshan820:30294714 vstes263:30335439 vscorecescf:30445987 pythondataviewer:30285071 vscod805:30301674 binariesv615:30325510 bridge0708:30335490 bridge0723:30353136 cmake_vspar411:30581797 vsaa593:30376534 pythonvs932:30410667 cppdebug:30492333 vsclangdc:30486549 c4g48928:30535728 dsvsc012cf:30540253 azure-dev_surveyone:30548225 pyindex848:30577860 nodejswelcome1:30587005 282f8724:30602487 iaj6b796:30613358 f6dab269:30613381 fim-prod:30623723 ```
lszomoru commented 1 year ago

@Omcsesz, are you able to reproduce this issue with the latest Insiders release? Thank you!

Omcsesz commented 1 year ago

@Omcsesz, are you able to reproduce this issue with the latest Insiders release? Thank you!

@lszomoru, Yes, I'm able to reproduce it in the Insiders release.

lszomoru commented 1 year ago

@Omcsesz, I am unable to reproduce the issue with the latest Insiders. Do you mind doing the following:

  1. Create a recording with the latest Insiders release.
  2. Share the contents of the git output window so that I can review all git operations.
Omcsesz commented 1 year ago

@lszomoru

  1. StashAndCheckoutNotWorkingInInsiders
  2. GitOutput.log
lszomoru commented 1 year ago

@Omcsesz, thank you very much for the additional information. I have watched the recording multiple times, and one thing that I have noticed is that after you click on "Stash & Checkout" a quick input widget is being shown to enter an optional message for the stash. You do not enter a message, and the quick input widget is closed. How did that widget get closed? Did you press ENTER, or ESC, or a mouse click?

I was also wondering if you could enable trace logging for the Git extension so that we get more information in the output:

  1. Open the command palette and invoke the "Developer: Set Log Level..." command
  2. Scroll down to the bottom of the list and select "Git"
  3. Select "Trace"

Reproduce the issue again using Insiders, and share the recording and the contents of the git output window. Thanks!

Omcsesz commented 1 year ago

@lszomoru I close the quick input widget with ESC. StashAndCheckoutNotWorkingWithTrace GitOutputWithTrace.txt

lszomoru commented 1 year ago

@Omcsesz, thank you very much. I have looked at the code, and at the moment pressing ESC to close the input widget will result in git stash not being executed followed by another attempt to checkout which yields the error that you are seeing. While I working on a fix, you can press ENTER to close the input widget as a workaround.

lszomoru commented 1 year ago

The general pattern is that if a ESC is pressed when a quick input widget is being shown the operation is cancelled. I have pushed a fix so that if ESC is pressed during the "Stash & Checkout" operation, the complete operation gets cancelled so you should not see the error any more. If you do not want to specify a message for the stash you have to press Enter.