microsoft / vscode

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

Merge editor bug #179163

Open jmcdl opened 1 year ago

jmcdl commented 1 year ago

Type: Bug

When I choose 'resolve in merge editor' I see the panels with conflicting changes, then after a few seconds everything is higlighted yellow. It seems to have resolved the conflicts automatically but if I close the tab I see an alert that there are still unresolved conflicts.

VS Code version: Code 1.77.0 (Universal) (7f329fe6c66b0f86ae1574c2911b681ad5a45d63, 2023-03-29T09:57:11.797Z) OS version: Darwin arm64 22.4.0 Modes: Sandboxed: Yes

System Info |Item|Value| |---|---| |CPUs|Apple M1 Pro (8 x 24)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
metal: disabled_off
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)|3, 5, 4| |Memory (System)|32.00GB (0.65GB free)| |Process Argv|--crash-reporter-id e903eb7b-f7d9-40ee-86c6-e8682fb449ce| |Screen Reader|no| |VM|0%|
Extensions (30) Extension|Author (truncated)|Version ---|---|--- calva|bet|2.0.345 calva-spritz|bet|1.0.4 vscode-eslint|dba|2.4.0 gitlens|eam|13.4.0 prettier-vscode|esb|9.10.4 nunjucks-template|ese|0.5.1 auto-rename-tag|for|0.1.10 copilot|Git|1.79.10634 vscode-graphql|Gra|0.8.7 vscode-graphql-syntax|Gra|1.1.0 elixir-ls|Jak|0.13.0 latex-workshop|Jam|9.8.2 vscode-json5|mrm|1.0.0 vscode-docker|ms-|1.24.0 playwright|ms-|1.0.10 python|ms-|2023.6.0 vscode-pylance|ms-|2023.3.40 jupyter|ms-|2023.3.1000892223 jupyter-keymap|ms-|1.1.0 jupyter-renderers|ms-|1.0.15 vscode-jupyter-cell-tags|ms-|0.1.8 vscode-jupyter-slideshow|ms-|0.1.5 remote-containers|ms-|0.288.0 material-icon-theme|PKi|4.25.0 markdown-preview-enhanced|shd|0.6.8 vscode-styled-components|sty|1.7.5 vscode-terminal-here|Tyr|0.2.4 vscode-mdx|uni|1.3.0 intellicode-api-usage-examples|Vis|0.2.7 vscodeintellicode|Vis|1.2.30 (4 theme extensions excluded)
A/B Experiments ``` vsliv368:30146709 vsreu685:30147344 python383:30185418 vspor879:30202332 vspor708:30202333 vspor363:30204092 vslsvsres303:30308271 vserr242:30382549 pythontb:30283811 vsjup518:30340749 pythonptprofiler:30281270 vshan820:30294714 vstes263cf:30335440 vscoreces:30445986 pythondataviewer:30285071 vscod805cf:30301675 binariesv615:30325510 bridge0708:30335490 bridge0723:30353136 cmake_vspar411:30581797 vsaa593cf:30376535 pythonvs932:30410667 cppdebug:30492333 vsclangdf:30486550 c4g48928:30535728 dsvsc012cf:30540253 pynewext54:30695312 azure-dev_surveyone:30548225 vsccc:30610678 nodejswelcome1:30587005 282f8724:30602487 pyind779:30671433 89544117:30613380 pythonsymbol12:30671437 vsctsb:30677850 pythonb192cf:30669361 azdwalk:30687957 pythonms35:30701012 ```

https://user-images.githubusercontent.com/25539870/229861400-a2a5aa7d-a820-4577-8833-32f2a9fa156e.mov

hediet commented 1 year ago

Can you share your conflict? (using Copy Merge Editor State as JSON command) Thanks!

jmcdl commented 1 year ago

That code shipped and the branch deleted so I don't have the exact scenario available, but I went and deleted the merge commit from our main branch and got more or less the same thing. I saved the merge editor json twice. Once before the self resolution happened and one after. Let me know if this isn't what you need.

after-self-resolve.txt before-self-resolve.txt

matthewjschultz commented 1 year ago

I have this same issue except it's always yellow. I'm also experiencing other weirdness.

Even though I have git.mergeEditor = true (for user and workspace), page-based inline diff shows by default. It does show properly with decorators for current and incoming, but I always have to click "resolve in merge editor" to bring up the merge editor UI. I've tried everything to get it to work by default, but I can't find the magic recipe.

Once I activate the merge editor, incoming and current are both highlighted yellow and the UI only shows a single all-encompassing conflict; no discrete conflicts. Compare properly shows the discrete differences.

Screenshots:

Diff 1 Compare Diff UI

I'm using:

Version: 1.77.1 (Universal) Commit: b7886d7461186a5eac768481578c1d7ca80e2d21 Date: 2023-04-04T23:23:33.779Z Electron: 19.1.11 Chromium: 102.0.5005.196 Node.js: 16.14.2 V8: 10.2.154.26-electron.0 OS: Darwin x64 22.4.0 Sandboxed: No

Here's the output for "Copy Merge Editor State as JSON Command"

ADTC commented 8 months ago

@jmcdl May I suggest to please write a better title than "Merge Editor bug"? (You can still edit the title.) I was searching for merge editor bugs, and I had to open this issue to see what the bug is. I couldn't just see it directly in the search results. Thank you. 🙂