Subversion repository:
When files have been modified by a user (author column) having a space in his name, the first word is in the 'author' column and the other words are in the 'file' column creating 'ghost' files which cannot be accessed
I have made a change to my local lib/tkcvs/svn.tcl to deal with this problem. The change works in my extremely limited testing, but I'll paste the diff here for someone to decide where to go with it.
155c155
< # The first five columns in the output are each one character wide
---
> # The first eight columns in the output are each one character wide
167,168c167,168
< # M 965 938 kfogel wc/bar.c
< # * 965 922 sussman wc/foo.c
---
> # M 965 938 kevin fogel wc/bar of foo.c
> # * 965 922 sussman wc/foo.c
173,179c173,178
< set nb [string first "/emailAddress=" [lrange $varcols 3 end] ]
< if {$nb == "-1"} {
< set cauthor [lindex $varcols 2]
< set filename [lrange $varcols 3 end]
< } else {
< set cauthor [lrange $varcols 2 3]
< set filename [lrange $varcols 4 end]
---
> # It is possible for author names and file names to have spaces.
> # Need to try different splits of 2 to end to get the right split of author and file
> set fileindex [llength $varcols]
> while {$fileindex > 2} {
> if {[file exists [lrange $varcols $fileindex end]]} {break}
> set fileindex [expr {$fileindex - 1}]
180a180,181
> set cauthor [lrange $varcols 2 [expr $fileindex - 1]]
> set filename [lrange $varcols $fileindex end]
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have made a change to my local lib/tkcvs/svn.tcl to deal with this problem. The change works in my extremely limited testing, but I'll paste the diff here for someone to decide where to go with it.
155c155
< # The first five columns in the output are each one character wide
---
> # The first eight columns in the output are each one character wide
167,168c167,168
< # M 965 938 kfogel wc/bar.c
< # * 965 922 sussman wc/foo.c
---
> # M 965 938 kevin fogel wc/bar of foo.c
> # * 965 922 sussman wc/foo.c
173,179c173,178
< set nb [string first "/emailAddress=" [lrange $varcols 3 end] ]
< if {$nb == "-1"} {
< set cauthor [lindex $varcols 2]
< set filename [lrange $varcols 3 end]
< } else {
< set cauthor [lrange $varcols 2 3]
< set filename [lrange $varcols 4 end]
---
> # It is possible for author names and file names to have spaces.
> # Need to try different splits of 2 to end to get the right split of author and file
> set fileindex [llength $varcols]
> while {$fileindex > 2} {
> if {[file exists [lrange $varcols $fileindex end]]} {break}
> set fileindex [expr {$fileindex - 1}]
180a180,181
> set cauthor [lrange $varcols 2 [expr $fileindex - 1]]
> set filename [lrange $varcols $fileindex end]