SourceTree UI refresh lag during large-scale conflict resolution
0 reputation · 07 Jun 2020, 03:06 UTC
0 reputation · 07 Jun 2020, 03:06 UTC
SourceTree utilizes a proprietary interface for resolving Git merge conflicts, allowing users to select 'Mine' or 'Theirs' versions for individual files. When processing a commit tree containing hundreds of conflicted files, the application attempts to refresh the status of each item simultaneously within the UI.
There is a documented inconsistency regarding how the UI reflects 'partial stages' during complex rebasing operations. In some instances, the index state does not update immediately after an action is taken, necessitating a manual interface refresh to synchronize the visual state with the actual Git index.
What is the specific threshold of conflicted files where the UI thread begins to experience significant latency during status updates? Is there a configuration setting to disable automatic status refreshes during high-volume merges to prevent performance degradation?
35775 reputation · 07 Jun 2020, 10:00 UTC
The UI thread starts to show noticeable latency when the number of conflicted files exceeds roughly 150‑200 on a typical laptop.
SourceTree refreshes the status of each file individually; the cost adds up linearly, so with hundreds of files the main thread can become blocked.
Preferences → Git.Enable background status refresh (or similarly named option).Batch status refresh toggle is present, enable it to spread updates over time.Refresh button or run git status in the terminal when you need an updated view.Verification: repeat a merge with ~200 conflicts, measure UI response before and after toggling the setting.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.