microsoft / vscode

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

"Accept Incoming/Stashed" is missing from Merge editor #172053

Open Omcsesz opened 1 year ago

Omcsesz commented 1 year ago

Type: Bug

Hello, Team!

Sometimes, when wanting to open a conflicting file for solving merge conflicts, the "Accept Incoming/stashed", and other options are missing form the left pane in merge editor (see attachment). Can you please fix this? AcceptIncomingIsMissing

VS Code version: Code 1.74.3 (97dec172d3256f8ca4bfb2143f3f76b503ca0534, 2023-01-09T16:59:02.252Z) 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 (5.42GB free)| |Process Argv|--crash-reporter-id c2d76645-3789-47da-a678-f1fbfbb015bc| |Screen Reader|no| |VM|0%|
Extensions (36) Extension|Author (truncated)|Version ---|---|--- project-manager|ale|12.7.0 ng-template|Ang|15.1.0 gitstash|art|5.1.0 asciidoctor-vscode|asc|2.9.8 vscode-tailwindcss|bra|0.9.6 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.4 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.14.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 pyind779:30647091 f6dab269:30613381 ```
hediet commented 1 year ago

This happens when both sides describe an equal change. In this case, the conflict gets auto-resolved and you don't have to do anything.

vscodenpa commented 1 year ago

The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our issue reporting guidelines.

Happy Coding!

Omcsesz commented 1 year ago

@hediet Meanwhile, I found the same issue in another situation, but this time neither Accept Incoming, nor Accept current was visible. The problem is that in this case, I can not resolve the conflict in any way: AcceptIncomingIsMissing2

hediet commented 1 year ago

Did you remove the conflict markers before opening the merge editor?

Omcsesz commented 1 year ago

@hediet No, I did not remove them.

hediet commented 1 year ago

I see why - both sides are equal. In that case, the merge editor automatically solves the conflict by taking the left side (which equals the right side).

Omcsesz commented 1 year ago

@hediet I understand, but the number of conflicts can not be reduced to zero (even if I choose "Reset to base" in the lower section of the merge editor, the conflict counter remains on 1).

hediet commented 1 year ago

Can you share the original conflicting files?

Omcsesz commented 1 year ago

@hediet The most recent occurrence of this bug came at these two (change extension to .ts): incoming.txt orig.txt

hediet commented 1 year ago

Can you also share the base version of your conflict?

Omcsesz commented 1 year ago

@hediet The most recent occurrence of this bug came at these two (change extension to .ts): image base.ts.txt current.ts.txt incoming.ts.txt

hediet commented 1 year ago

Thanks for the example!

However, I don't understand the result state - it does not seem to be from current or incoming (or some combination), as it imports symbols that don't appear in either version. What did you do to get to the text in result?

Omcsesz commented 1 year ago

@hediet I opened the file via double-click from the Source Control tab, then I clicked on "Open in merge editor" button in the lower right corner of the file viewer.