summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c63fe3b)
raw | patch | inline | side by side (parent: c63fe3b)
author | Michele Ballabio <barra_cuda@katamail.com> | |
Sun, 9 Sep 2007 19:04:45 +0000 (21:04 +0200) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Sun, 9 Sep 2007 23:47:22 +0000 (19:47 -0400) |
git-gui has a minor problem with regards to symlinks that point
to directories.
git init
mkdir realdir
ln -s realdir linkdir
git gui
Now clicking on file names in the "unstaged changes" window,
there's a problem coming from the "linkdir" symlink: git-gui
complains with
error reading "file4": illegal operation on a directory
...even though git-gui can add that same symlink to the index just
fine.
This patch fix this by adding a check.
[sp: Minor fix to use {link} instead of "link" in condition
and to only open the path if it is not a symlink.]
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
to directories.
git init
mkdir realdir
ln -s realdir linkdir
git gui
Now clicking on file names in the "unstaged changes" window,
there's a problem coming from the "linkdir" symlink: git-gui
complains with
error reading "file4": illegal operation on a directory
...even though git-gui can add that same symlink to the index just
fine.
This patch fix this by adding a check.
[sp: Minor fix to use {link} instead of "link" in condition
and to only open the path if it is not a symlink.]
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/diff.tcl | patch | blob | history |
diff --git a/lib/diff.tcl b/lib/diff.tcl
index e09e1257e1be299caceb0c6f0074c1b43b566974..9eeff2ed3590da610ce5eb2243f6d9d4474366c3 100644 (file)
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
if {$m eq {_O}} {
set max_sz [expr {128 * 1024}]
if {[catch {
- set fd [open $path r]
- fconfigure $fd -eofchar {}
- set content [read $fd $max_sz]
- close $fd
- set sz [file size $path]
+ if {[file type $path] == {link}} {
+ set content [file readlink $path]
+ set sz [string length $content]
+ } else {
+ set fd [open $path r]
+ fconfigure $fd -eofchar {}
+ set content [read $fd $max_sz]
+ close $fd
+ set sz [file size $path]
+ }
} err ]} {
set diff_active 0
unlock_index