📄 svn-import.tcl
字号:
#
# Tcl Library for TkCVS
#
#
# Adds a new document to the repository.
#
proc svn_import_run {} {
global incvs insvn
global cvsglb
global cvscfg
gen_log:log T "ENTER"
cvsroot_check [pwd]
if {$insvn} {
cvsok "This directory is already in Subversion.\nCan\'t import here!" .svn_import
gen_log:log T "LEAVE"
return
} elseif {$incvs} {
cvsok "There are CVS directories here.\nPlease remove them first." .svn_import
gen_log:log T "LEAVE"
return
}
set cvsglb(imdir) [file tail [pwd]]
# This is just a default. The user can change it.
if {[info exists cvscfg(svnroot)] && $cvscfg(svnroot) != ""} {
set cvsglb(imtop) $cvscfg(svnroot)
} else {
set cvsglb(imtop) "< URL Required >"
}
# Can't use file join or it will mess up the URL
set cvsglb(imtop) "$cvsglb(imtop)/trunk"
if {[winfo exists .svn_import]} {
wm deiconify .svn_import
raise .svn_import
grab set .svn_import
gen_log:log T "LEAVE"
return
}
toplevel .svn_import
grab set .svn_import
frame .svn_import.top
message .svn_import.top.explain -justify left -width 500 -relief groove \
-text "This will import the current directory and its sub-directories\
into SVN. If you haven't created a Subversion repository,\
you must do that first with \"svnadmin create.\""
label .svn_import.top.lsvnroot -text "URL of SVN Repository" -anchor w
entry .svn_import.top.tsvnroot -textvariable cvsglb(imtop)
grid .svn_import.top.explain -column 0 -row 0 -columnspan 3 -sticky ew
#grid .svn_import.top.lnewdir -column 0 -row 1 -sticky w
#grid .svn_import.top.tnewdir -column 1 -row 1 -sticky ew
grid .svn_import.top.lsvnroot -column 0 -row 2 -sticky e
grid .svn_import.top.tsvnroot -column 1 -row 2 -sticky ew
frame .svn_import.down -relief groove -border 2
button .svn_import.down.ok -text "OK" \
-command {
grab release .svn_import
wm withdraw .svn_import
svn_do_import $cvsglb(imtop) $cvsglb(imdir)
}
button .svn_import.down.quit -text "Cancel" \
-command {
grab release .svn_import
wm withdraw .svn_import
}
pack .svn_import.down -side bottom -expand yes -fill x
pack .svn_import.top -side top -expand yes -fill x
pack .svn_import.down.ok -side left -expand yes
pack .svn_import.down.quit -side left -expand yes
wm title .svn_import "Import a Project into Subversion"
wm minsize .svn_import 1 1
gen_log:log T "LEAVE"
}
proc svn_do_import {imtop imdir} {
global cvscfg
gen_log:log T "ENTER"
set imdir [pwd]
set cwd [pwd]
set commandline "svn import . $imtop -m \"Imported using TkCVS\""
set v [viewer::new "Import Project"]
$v\::log "\nSVN Import\n"
$v\::do "$commandline"
$v\::wait
update
# Now check out the new module
cd ..
gen_log:log F "CD [pwd]"
# We have to move the original stuff entirely out of the way.
# Otherwise checkout won't do the whole tree.
gen_log:log F "MOVE $imdir $imdir.orig"
if {[file isdirectory $imdir.orig]} {
file delete -force -- $imdir.orig
}
file rename $imdir $imdir.orig
set commandline "svn checkout $imtop $imdir"
$v\::log "\nSVN Checkout\n"
$v\::do "$commandline"
$v\::wait
if {[catch "cd $imdir" err]} {
# If we didn't check out the new dir sucessfully, put the old one back
file rename $imdir.orig $imdir
cvsok "$err" .isvn_mport
} else {
gen_log:log F "CD [pwd]"
}
setup_dir
modbrowse_run svn
gen_log:log T "LEAVE"
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -