关于Windows下SVN客户端的简单使用可以参考本站文章《使用subversion配置SVN服务与Windows下SVN客户端使用教程》。下面看看在Linux系统中SVN客户端是怎么使用的
svn命令语法格式:
1 | svn <subcommand> [options] [args] #svn命令+子命令+选项+参数 |
常用的子命令(括号代表简写方式):
checkout(co):从源码库迁出一个指定版本的项目副本,通常用于第一次从服务器上迁出
update(up):经过checkout之后的目录就是svn的工作副本了,以后还需要从服务器上同步到本地的话就需要使用update
delete(del,rm,remove):删除本地或者svn服务器上的文件
import:将本地文件导入到源码库中,通常用于第一次上传让服务器生成代码项目,以后还需要上传则是commit
add:在commit之前需要先把文件add到SVN中,然后再commit才能正式上传
commit(ci):提交已修改过的本地文件到服务器
copy(cp) :复制一份项目副本
diff(di):
info:查看某文件信息,如修改时间,版本号
status:查看svn工作目录的当前状态
下面是一个操作流程说明:
1、首先在客户端上创建一个目录用于存放数据
1 | mkdir /svndata |
2、进行Checkout的操作,只不过是命令行的方式了,有两种写法:
1 | svn co svn://192.168.xx.xxx/weixin /svndata --username=tanglu password=tanglu |
2 | svn checkout svn://192.168.xx.xxx/weixin /svndata --username=tanglu password=tanglu |
3、这个时候终端会提示是否保存密码,输入yes后下次连接就不再需要密码。我在测试的时候遇到一个问题,Checkout的时候报错“does not appear to be a URL”,网上查也没查到,于是试用了各种方法,最后是切换到其他目录在进行操作,不能直接在需要迁出的目录内执行该命令。
4、我们可以用windows客户端commit一个文件名叫QQ.txt,再用linux客户端update查看更新,如果update不行可以重新co一次,作用是一样的。
5、在不下载文件的情况下查看SVN服务器中的文件
1 | svn ls svn://192.168.38.128/weixin |
6、从Linux客户端上传文件到SVN服务器,需要先使用add添加文件,然后再用commit提交
1 | svn add file1 file2 file3 |
2 | svn ci -m "test file" |
下面是一个工作实例,把DNS的目录导入到SVN中作为备份:
1、将A服务器的DNS目录导入到SVN服务器中
1 | svn import /data/named/etc/ http://192.168.17.47:8080/svn/publish/dns/etc/ -m "import dns conf" --username 'svnadmin' |
2 | svn import /data/named/zone/ http://192.168.17.47:8080/svn/publish/dns/zone/ -m "import dns zone" --username 'svnadmin' |
2、导入成功后在SVN服务器上执行一次svn update命令,正常情况下就会看到刚导入的文件
3、这个时候回到A服务器,执行svn checkout命令把刚才导入的目录变成SVN的工作副本,否则以后依然无法使用svn命令对其进行管理,会提示svn is not a working copy
1 | svn checkout http://192.168.17.47:8080/svn/publish/dns/zone --username=svnadmin |
2 | svn checkout http://192.168.17.47:8080/svn/publish/dns/etc --username=svnadmin |
4、如果import指定错目录或者以后如果需要在SVN服务器上删除某目录的话,执行svn delete
1 | svn delete http://192.168.17.47:8080/svn/publish/dns/ -m "delete workplace-dns" --username 'svnadmin' |