Skip to content

Adds conflict files panel to the Interactive Rebase editor (#5040)#5048

Merged
ianhattendorf merged 1 commit into
mainfrom
feature/rebase-conflict-files-panel
Mar 25, 2026
Merged

Adds conflict files panel to the Interactive Rebase editor (#5040)#5048
ianhattendorf merged 1 commit into
mainfrom
feature/rebase-conflict-files-panel

Conversation

@ianhattendorf

Copy link
Copy Markdown
Contributor

Description

Closes #5040.

image

@ianhattendorf ianhattendorf added this to the 17.12 milestone Mar 19, 2026
@ianhattendorf ianhattendorf requested a review from d13 March 19, 2026 21:14
Comment on lines +918 to +928
const stat = await workspace.fs.stat(uri);

const maxConflictFileSize = 5 * 1024 * 1024; // 5 MB
if (stat.size > maxConflictFileSize) return 0;

const key = uri.fsPath;
const cached = this._conflictMarkerCache.get(key);
if (cached?.mtime === stat.mtime) {
return cached.count;
}
const content = await workspace.fs.readFile(uri);

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we think this is too heavy? The read is cached, but it still requires a stat to bust the cache. This is to get us the number of conflicts in the file.

I wanted to add this to see if it felt useful, but I'm leaning towards removing it.

@augmentcode

augmentcode Bot commented Mar 19, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds an inline conflicted-files panel to the Interactive Rebase editor to make resolving paused rebases easier (closes #5040).

Changes:

  • Renders a new conflict panel (resizable via divider) that lists conflicted files, their conflict status, and conflict-marker counts
  • Adds IPC commands to open a conflict file and to open “current” vs “incoming” conflict changes, plus matching telemetry events
  • Extends the shared tree component to support text decoration tooltips/colors and improves layout behavior in flex containers
  • Enhances openRebaseEditor to focus an existing rebase editor tab rather than no-oping
  • Updates paused-operation UI behavior so “show conflicts” opens the rebase editor only for rebases
  • Updates telemetry documentation and event typings

Technical Notes: Conflict marker counts are derived by scanning conflicted files (with caching and a size cap) and are surfaced to the webview state for rendering.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread src/git/actions/pausedOperation.ts
Comment thread src/webviews/rebase/rebaseWebviewProvider.ts Outdated
@ianhattendorf ianhattendorf force-pushed the feature/rebase-conflict-files-panel branch from 39ae80b to edaf3a0 Compare March 20, 2026 15:18

@d13 d13 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

There's a UX revision we already discussed to open files to the side, but that doesn't block my approval.

Adds a conflict files panel to the rebase editor that shows conflicting files
with per-file conflict counts, conflict status indicators, and actions to view
current or incoming changes. Also fixes phantom scrollbar in gl-tree-generator
for small containers.
@ianhattendorf ianhattendorf force-pushed the feature/rebase-conflict-files-panel branch from edaf3a0 to 4a99681 Compare March 25, 2026 22:08
@ianhattendorf ianhattendorf merged commit e79b33b into main Mar 25, 2026
6 checks passed
@ianhattendorf ianhattendorf deleted the feature/rebase-conflict-files-panel branch March 25, 2026 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create rebase editor split view showing conflicting files on the bottom

2 participants