SVN教程(2)svn常用命令说明

TangLu 未命名 2018-09-18 21360 0

一、svn命令语法格式

svn <subcommand> [options] [args]    #svn+子命令+选项+参数


二、svn常用子命令(括号代表可简写):

checkout(co):从源码库迁出一个指定版本的项目副本到客户端

update(up):从服务器上同步项目到本地,在日常使用中checkout用于第一次迁出,之后都是使用up来同步

delete(del,rm,remove):删除本地或者svn服务器上的文件

import:将本地文件导入到源码库中,通常用于第一次上传让服务器生成代码项目,以后还需要上传则是commit

add:在commit之前需要先把文件add到SVN中,然后再commit才能正式上传

commit(ci):提交已修改过的本地文件到服务器

info:查看某文件信息,如修改时间,版本号

status:查看svn工作目录的当前状态

copy(cp) :复制一份项目副本

diff(di):


三、svn命令操作流程示例

1、首先在客户端上创建一个目录用于存放项目数据

mkdir  /svndata


2、使用命令行方式进行Checkout的操作,这样可以把SVN服务器中的代码拉到本地,并且可以通过SVN进行管理

cd /svndata/
svn checkout http://192.168.52.47:8080/svn/pluto-web --username 'root' --password 'JJ9pSisYZpq514rB' --no-auth-cache;  #pluto-web是项目名字,请自行更改


3、这个时候终端会提示是否保存密码,输入yes后下次连接就不再需要密码。我在测试的时候遇到一个问题,Checkout的时候报错“does not appear to be a URL”,网上查也没查到,于是试用了各种方法,最后是切换到其他目录进行操作,不能直接在需要迁出的目录内执行该命令。

svnlinux.jpg


4、我们可以用windows客户端commit一个文件名叫QQ.txt,再用linux客户端update查看更新,如果update不行可以重新co一次,作用是一样的

svnupdate.jpg


5、在不下载文件的情况下查看SVN服务器中的文件

svn ls svn://192.168.38.128/weixin


6、从Linux客户端上传文件到SVN服务器,需要先使用add添加文件,然后再用commit提交

svn add file1 file2 file3
svn ci -m "test file"


svnci.jpg


下面是一个工作实例,把DNS的目录导入到SVN中作为备份:

1、将A服务器的DNS目录导入到SVN服务器中

svn import /data/named/etc/ http://192.168.17.47:8080/svn/publish/dns/etc/ -m "import dns conf" --username 'svnadmin'
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 

svn checkout http://192.168.17.47:8080/svn/publish/dns/zone  --username=svnadmin
svn checkout http://192.168.17.47:8080/svn/publish/dns/etc  --username=svnadmin


4、如果import指定错目录或者以后如果需要在SVN服务器上删除某目录的话,执行svn delete

svn delete http://192.168.17.47:8080/svn/publish/dns/ -m "delete workplace-dns" --username 'svnadmin' 

评论