summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4ed1a19)
raw | patch | inline | side by side (parent: 4ed1a19)
author | Shawn O. Pearce <spearce@spearce.org> | |
Mon, 10 Sep 2007 00:13:10 +0000 (20:13 -0400) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Mon, 10 Sep 2007 00:39:42 +0000 (20:39 -0400) |
If `git ls-files --others` returned us the name of a directory then
it is because Git has decided that this directory itself contains a
valid Git repository and its files shouldn't be listed as untracked
for this repository.
In such a case we should label the object as a Git repository and
not just as a directory.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
it is because Git has decided that this directory itself contains a
valid Git repository and its files shouldn't be listed as untracked
for this repository.
In such a case we should label the object as a Git repository and
not just as a directory.
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 a1d5e523d2efd900c96c7905f8b0d6b76f4b2f32..694834ab7a515667dbd14b38165fbe74b37a0349 100644 (file)
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
#
if {$m eq {_O}} {
set max_sz [expr {128 * 1024}]
+ set type unknown
if {[catch {
- if {[file type $path] == {link}} {
+ set type [file type $path]
+ switch -- $type {
+ directory {
+ set type submodule
+ set content {}
+ set sz 0
+ }
+ link {
set content [file readlink $path]
set sz [string length $content]
- } else {
+ }
+ file {
set fd [open $path r]
fconfigure $fd -eofchar {}
set content [read $fd $max_sz]
close $fd
set sz [file size $path]
}
+ default {
+ error "'$type' not supported"
+ }
+ }
} err ]} {
set diff_active 0
unlock_index
return
}
$ui_diff conf -state normal
- if {![catch {set type [exec file $path]}]} {
+ if {$type eq {submodule}} {
+ $ui_diff insert end "* Git Repository (subproject)\n" d_@
+ } elseif {![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]