一、从本地导入代码到服务器(第一次初始化导入)
终端输入:
svn import /Users/libo/Desktop/svn/UR项目仓库 https://192.168.4.234/svn/Repositories/mobile/ios/ --username=用户名 --password=密码 -m "初始化导入"
// 解释一下上面指令的意思:svn import是终端导入指令,/Users/libo/Desktop/svn/UR项目仓库 是你的项目在电脑上的上层文件夹地址,https://192.168.4.234/svn/Repositories/mobile/ios/是svn服务器地址,这个命令会把/Users/libo/Desktop/svn/UR项目仓库里面的所有内容导入到https://192.168.4.234/svn/Repositories/mobile/ios/中去
二、从服务器端下载代码到客户端本地
在终端中输入
svn checkout https://192.168.4.234/svn/Repositories/mobile/ios/UR --username=用户名 --password=密码 /Users/libo/Desktop/svn
// checkout可以简写成 co;https://192.168.4.234/svn/Repositories/mobile/ios/UR是项目在svn服务器中的地址
三、更新服务器端的代码到客户端
先cd指定的项目
cd /Users/libo/Desktop/svn/UR
再通过svn命令更新
svn update
// update可以简写成up
四、提交修改过的代码到服务端
先cd指定的项目
cd /Users/libo/Desktop/svn/UR
再通过svn命令更新
svn commit -m"修改了xxx"
// commit可以简写成ci
五、至于svn的其他用法,可以在终端输入:svn help
add
auth
blame (praise, annotate, ann)
cat
changelist (cl)
checkout (co)
cleanup
commit (ci)
copy (cp)
delete (del, remove, rm)
diff (di)
export
help (?, h)
import
info
list (ls)
lock
log
merge
mergeinfo
mkdir
move (mv, rename, ren)
patch
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
relocate
resolve
resolved
revert
status (stat, st)
switch (sw)
unlock
update (up)
upgrade
svn命令汇总
svn 命令共同的选项
--targets list 读取list并将其解释为一个将要操作的参数列表
--non-recurisive, –N 只操作单个目录,不处理子目录
--verbose, –v 打印额外的信息
--quiet, –q 打印的信息尽可能少
--username, name 指定在连接授权时使用的用户名
--password, pawd 指定要使用的密码
--no-auth-cache 不要缓存身份令牌
--non-interactive 不要提示输入额外的信息
--config-dir dir 从dir读取用户配置
--editor-cm cmd 使用cmd作为日志消息的编辑器
svn add
把文件及目录的名称添加给版本控制系统。他们会在下次提交时被添加到项目仓库
svn add path
--auto-props 在添加他们的时候自动设置文件的属性
--no-auto-props 禁用自动属性设置
svn blame
显示文件每行的版本及作者信息
--revision, –r rev 如果指定的rev是单个版本,显示该版本作者信息。如果是范围rev1:rev2, 显示rev2版本作者的信息,但只检查版本到rev1.
svn cat
输出指定文件或者URL的内容
svn cat target…
--revision, –r rev
svn checkout
从项目仓库牵出一个工作拷贝
svn checkout url…path
如果没有指定path,签出的本地目录名使用URL的base name.
svn cleanup
清理工作拷贝,移除锁,完成未完成的操作,等等。
svn cleanup path…
svn commit path
把改动从你的工作拷贝发送到项目仓库
--message, –m msg 使用msg作为提交日志消息。
--file, –F file 使用file的内容作为提交日志消息。
--no-unlock 不要在提交的时候释放锁。
svn copy
在工作拷贝或者项目仓库中制造包括历史在内的复本
svn copy src dest
src和dest可以是工作拷贝(WC)的路径或者URL.
src dest 效果……
WC WC 拷贝并添加
WC URL 立即提交WC的拷贝到URL
URL WC 签出URL到WC, 添加
URL URL 完全服务器端拷贝;用于制作分支和打标签
--revision, –r rev要拷贝的src的版本。只在src是项目仓库的URL时才有意义。
svn delete target
从项目仓库删除文件或者目录。如果target是工作拷贝中的文件或者目录,它被从工作拷贝中移除并且预计在下次提交时删除掉。如果target是项目仓库URL,通过一次立即的提交从项目仓库中删除。
--message, –m msg
--file, –F file
svn diff
显示两个路径之间的差异
svn diff –r rev1:rev2 target…
svn diff oldurl newurl
svn export
创建一个无版本记录的拷贝.
svn export –r rev URL path
从项目仓库的指定URL导出一个干净的目录树到path中,如果指定了rev参数,导出rev版本的,否则到处最新版本。
svn import
导入一个无版本的文件或者树到项目仓库
svn import path URL
svn info
显示文件或者目录的信息。
svn list
列出项目仓库中的目录条数。
svn lock
锁住文件让其它用户不能提交改动。
svn lock target
--message, –m msg 使用msg作为锁信息消息
--force 强制加锁成功,通过从其他用户或者工作拷贝把锁给偷过来。
svn log
显示一些版本或者文件的日志消息.
--stop-on-copy 在遍历历史的时候不要穿越拷贝(对于查找分支的起点很有用)
svn merge
把两个来源的差异应用给工作拷贝路径。
svn merge –r rev1:rev2 source wcpath
svn mkdir
创建版本控制下的新目录
svn mkdir target
svn move src dest
移动或者重命名工作拷贝或者项目仓库中文件或者目录。
--revision, –r rev使用版本rev作为源来执行这次移动。
svn propdel
删除文件或者目录的属性
svn propdel propname path…
svn propedit
编辑文件或者目录的属性
svn propedit propname path…
svn propget
打印文件或者目录的属性值
svn propget propname path…
--strict 禁用额外的换行和其它的美化措施(在把二进制属性重定向到文件时会有用处)
svn proplist
列出文件或者目录的所有属性
--verbose
--recursive
--revision, –r rev 列出path在版本rev定义的属性
svn propset(pset, ps)
svn propset propname propval path…
--file, –F file 读取file的内容,使用它作为属性值.
--recursive
--encoding enc 把值作为用enc编码的字符集
svn resolved
移除工作拷贝文件或者目录的冲突状态
--recursive
svn revert
恢复工作拷贝的文件(撤销最新的本地修改)
svn revert path 这个命令不需要网络连接
--recursive
svn status
打印工作拷贝中文件或者目录的状态
svn status path…
--show-updates, –u 联系服务器显示更新信息
--no-ignore 忽视默认设置和svn:ignore属性设置的忽略项
--non-recursive, –N
--verbose, –v
svn switch
把工作拷贝转向到其他的URL
svn switch URL path
更新工作拷贝让其使用项目仓库的新URL.这个行为类似svn update 而且是一种把工作拷贝转向到同一项目仓库中的分支或者标签的办法。
--revision, –r rev 转向到版本rev
--non-recursive, –N
--diff3-cm 使用cmd作为合并命令
svn unlock
解开工作拷贝文件或者项目仓库URL的锁。
svn unlock target…
--force 砸坏现有对target的锁,甚至它不是被当前工作拷贝所拥有的。
svn update
把改动从项目仓库带到工作拷贝来。
svn update path…
--revision, –r rev 更新到版本rev
--non-recrusive, –N
--diff3-cmd