git-gui: Reimplement and enhance auto-selection of diffs.
Generalize the next_diff system, and implement auto-reselection for merge tool resolution and reshow_diff. Also add auto-selection of diffs after rescan, if no diff is already selected. New auto-select rules: - Rescan auto-selects the first conflicting file, or if none a modified tracked file, if nothing was selected previously. - Resolving a conflict auto-selects the nearest conflicting file, or nothing if everything is resolved. - Staging the last remaining hunk auto-selects the nearest modified staged file. - Staging a file through its icon auto-selects the nearest file. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:

committed by
Shawn O. Pearce

parent
ff515d81fa
commit
29853b9010
@ -24,13 +24,9 @@ This operation can be undone only by restarting the merge." \
|
||||
}
|
||||
|
||||
proc merge_add_resolution {path} {
|
||||
global current_diff_path
|
||||
global current_diff_path ui_workdir
|
||||
|
||||
if {$path eq $current_diff_path} {
|
||||
set after {reshow_diff;}
|
||||
} else {
|
||||
set after {}
|
||||
}
|
||||
set after [next_diff_after_action $ui_workdir $path {} {^_?U}]
|
||||
|
||||
update_index \
|
||||
[mc "Adding resolution for %s" [short_path $path]] \
|
||||
|
Reference in New Issue
Block a user