天天看点

subversion版本控制

版本控制软件subversion

=======================

安装软件包 :

# yum -y install subversion

一,创建svn版本库:

1.创建svn版本库

# mkdir  /var/svn

# svnadmin create  /svn/project1

2.导入初始化代码

#cd  /etc/rc.d/init.d/

#svn import ./ file:///var/svn/project/ -m "init data"

#svn list file:///var/svn/project/

3.创建帐号和密码

『注意:修改配置文件时前面不能有空格』

# vim /svn/project1/conf/svnserve.conf

anon-access = read     #{read|write|none}

//匿名只读

auth-access = write

//认证的用户可写

password-db = passwd

//定义用户和密码文件

authz-db = authz

//定义权限

# vim /svn/project1/conf/passwd

[users]

lisi = 123456

zhangsan = 123456

# vim /svn/project1/conf/authz

[/]

lisi = rw

zhangsan = rw

* = r

[project1:/] 表示project版本库的根

[project2:/test] 表示project2下的test目录

4.启动服务

# svnserver -d  

//发布所有版本库

或者

# svnserver -d -r /data/svn/project1

//仅发布project这一个版本库

5.客户端:

1.检出命令:checkout

#svn --username lisi --password 123456 co svn://192.168.4.5/ /data/mysvn

//首次将服务器上的根项目代码下载到本地 /data/mysvn目录下

# cd /data/mysvn

# svn co svn://192.168.4.5     //第二次检出可以不需要要密码

或者# svn checkout svn://192.168.4.5

2.检出后,即可用在本地修改代码,修改后还提交代码到服务器

提交命令:commit

# svn commit -m "注释信息"

或者 # svn ci -m "注释信息"

3.更新命令:update

# svn update

4. 查看帮助信息:svn h

查看版本信息:

svn info(查看版本仓库信息) ,

svn log(查看版本修改历史)

5.本地版本库添加新文件/目录:mkdir,add命令

# cd /data/svn

# echo "test" > test.sh

# svn mkdir abc

# svn add test.sh

# svn add  abc

# svn list svn://192.168.4.5

# svn co -m "add test file and abc dir"

6.本地版本库删除新文件:del,rm命令

# svn del test.sh

# ls test.sh

# svn co -m "delete test.sh"

7.本地副本于服务器数据对比:diff命令,

查看本地副本数据内容:cat命令

# echo "add test file" > a.txt

# svn diff a.txt

# svn diff

# svn cat a.txt

二,版本回滚:

revert命令:

本地副本修改后,但没有commit(ci)提交时:

1,# svn revert 文件名

merge命令:

本地副本修改commit提交后:

2,# svn -r1 co svn://ip...  svn02

    //检出版本1所有数据

3,# svn merge -rN:M   文件名

    //将文件从N版本还原回M版本

===================================

三,修改副本:

多个用户修改自己的文件(不同文件)

多个用户修改自己的文件(相同文件)

多个用户修改自己的文件(相同文件的相同行)在update时会提示冲突,需要手动处理

1.解决冲突:

#svn update      //可以选择p(postpone)

//df  

//edit

//mine-conflict

//theirs-confilict

//postpone

2.选择p(postpone)标记后,本地副本会多出几个文件

#ls

halt       //本地副本文件

halt.mine  //我的修改文件

halt.r5       //第五个版本

halt.r6    //第六个版本,

3.保留需要的文件覆盖掉halt,删除rm其他多余的后commit(ci)提交

四,备份与还原

使用dump指令备份

# svnadmin dump  /data/svn/project01/  > project.bak

使用load指令还原

# svnadmin create /data/svn/project02

# svnadmin load  /data/svn/project02  < project.bak

#############################################################

上一篇: 环境变量
下一篇: 鼠标手势