版本控制软件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 list svn://192.168.4.5
# svn co -m "delete test.sh"
# svn list svn://192.168.4.5
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
#############################################################
转载于:https://blog.51cto.com/lisp521/1900344