summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Shawn O. Pearce <spearce@spearce.org>2007-01-23 03:18:37 -0500
committerLibravatar Shawn O. Pearce <spearce@spearce.org>2007-01-23 03:18:37 -0500
commitd3596fd9486b602252d5b2c3e14ac55a07a2bdb9 (patch)
tree634d0fed415eec1c25c75cdd87a555b229ace5e5
parentgit-gui: Limit display of large untracked files. (diff)
downloadtgif-d3596fd9486b602252d5b2c3e14ac55a07a2bdb9.tar.xz
git-gui: When possible show the type of an untracked file.
Users may want to know what a file is before they add it to the repository, especially if its a binary file. So when possible invoke 'file' on the path and try to get its output. Since this is strictly advice to the user we won't bother to report any failures from our attempt to run `file`. Since some file commands also output the path name they were given we look for that case and strip it off the front of the returned output before placing it into the diff viewer. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rwxr-xr-xgit-gui.sh8
1 files changed, 8 insertions, 0 deletions
diff --git a/git-gui.sh b/git-gui.sh
index f71dabe68a..37757cfb65 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -640,6 +640,14 @@ proc show_diff {path w {lno {}}} {
return
}
$ui_diff conf -state normal
+ if {![catch {set type [exec file $path]}]} {
+ set n [string length $path]
+ if {[string equal -length $n $path $type]} {
+ set type [string range $type $n end]
+ regsub {^:?\s*} $type {} type
+ }
+ $ui_diff insert end "* $type\n" d_@
+ }
if {[string first "\0" $content] != -1} {
$ui_diff insert end \
"* Binary file (not showing content)." \