一、导出
简写:svn co
svn checkout svn://192.168.x.xxx/project/ ./svn
或者
svn checkout svn://192.168.x.xxx/project/ ./svn --username yourselfname --password yourpasswd
二、从服务器上更新文件到本地
svn update -r m path
简写:svn up
例如:
svn update 如果后面不加目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 38 test.cpp(将版本库中的文件test.cpp还原到版本38)
svn update test.cpp(更新test.cpp至版本库同)
如果在提交的时候提示过期,可能是因为修改冲突,先update,修改文件,然后清除svn resolved,最后再提交commit
三、往版本库添加新文件
svn add file
例如: svn add test.cpp (添加一个文件)
svn add * (添加所有文件)
如果文件命令执行后,没有任何提示,那很可能是文件没有添加到版本库。
四、提交文件
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
简写:svn ci
例如:svn commit -m “test commit“ test.cpp
五、加锁/解锁
svn lock -m “message“ [--force] PATH
例如:svn lock -m “lock test file“ test.cpp
svn unlock PATH
六、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】M状态一般比较多
2)svn status -v path(显示文件和子目录状态)
简写:svn st
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
七、删除文件
svn delete path -m “delete test file“
简写:svn (del, remove, rm)
例如:svn delete svn://192.168.x.xxx/project/test.cpp -m “delete test file”
或者直接svn delete test.cpp 然后再svn ci -m ‘delete test file‘
八、查看日志
svn log path
例如:svn log test.cpp
九、查看文件详细信息
svn info path
例如:svn info test.cpp
十、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.cpp
svn diff -r m:n path(对版本m和版本n比较差异)
简写:svn di
例如:svn diff -r 37:38 test.cpp
十一、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 37:38 test.cpp
如果产生冲突,需要再处理一下
十二、帮助
svn help
svn help + 命令 (查看某个命令帮助)