--- svn2cvs 2024/10/09 11:58:36 1.4 +++ svn2cvs 2024/10/17 10:08:53 1.6 @@ -13,19 +13,20 @@ set log [exec svn log --incremental "$sv set added "" set removed "" +set added_dir "" exec -ignorestderr svn up "$svn" -r "$rev" exec -ignorestderr cvs up -d "$cvs" proc rescan {path prefix} { - global svn cvs cache old added + global svn cvs cache old added added_dir foreach name [glob -tails -nocomplain -directory "$path" *] { if { [file type "$path/$name"] == "directory" } { if { ! [file exists "$cvs/$prefix/$name"] } { file mkdir "$cvs/$prefix/$name" file mkdir "$cache/$prefix/$name" cd "$cvs" - lappend added "[string range "$prefix/$name" 1 [string length "$prefix/$name"]]" + lappend added_dir "[string range "$prefix/$name" 1 [string length "$prefix/$name"]]" cd "$old" } rescan "$path/$name" "$prefix/$name" @@ -80,11 +81,14 @@ rescan "$svn" "" remove_left "$cvs" "" cd "$cvs" +if { "$added_dir" != "" } { + eval exec -ignorestderr cvs add \"[join $added_dir "\" \""]\" >/dev/stdout 2>@1 +} if { "$added" != "" } { - exec -ignorestderr cvs add $added >/dev/stdout 2>@1 + eval exec -ignorestderr cvs add \"[join $added "\" \""]\" >/dev/stdout 2>@1 } if { "$removed" != "" } { - exec -ignorestderr cvs rm $removed >/dev/stdout 2>@1 + eval exec -ignorestderr cvs rm \"[join $removed "\" \""]\" >/dev/stdout 2>@1 } exec -ignorestderr cvs ci -m "$log" cd "$old"