Skip to content

Commit

Permalink
git-gui: Don't allow staging files with conflicts.
Browse files Browse the repository at this point in the history
Prevent staging files with conflict markers by clicking
on the icon in the 'Unstaged Changes' list. Instead, pretend
that the user clicked the name, and show the diff.

Originally it made some sense to allow staging conflicting
files, because git-gui did not provide any tools to resolve
them from within the GUI. But now that we have added mergetool
capabilities, it is more likely to cause accidental and
non-undoable errors.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
Alexander Gavrilov authored and Shawn O. Pearce committed Sep 5, 2008
1 parent 7e30682 commit 617ceee
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions git-gui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1840,6 +1840,14 @@ proc toggle_or_diff {w x y} {
$ui_index tag remove in_sel 0.0 end
$ui_workdir tag remove in_sel 0.0 end
# Do not stage files with conflicts
if {[info exists file_states($path)]} {
set state [lindex $file_states($path) 0]
if {[string index $state 0] eq {U}} {
set col 1
}
}
if {$col == 0 && $y > 1} {
set i [expr {$lno-1}]
set ll [expr {[llength $file_lists($w)]-1}]
Expand Down

0 comments on commit 617ceee

Please sign in to comment.