subversion 版本控制系统 主要功能是保存每一次修改
安装包: subversion
mkdir /var/svn
svnadmin create /var/svn/xixi ##创建一个xixi的版本库
ls /var/svn/xixi
conf/ db/ format hooks/ locks/ README.txt
cd /usr/lib/systemd/system/
svm import . file:///var/svn/xixi ##将/usr/lib/systemd/system/的全部内容导入到svn的目录里面
vim /var/svn/xixi/conf/svnserve.conf
##所有配置文件,要求顶头写,开头不要有空格。
anon-access=none ##19行,修改为none,匿名访问者无任何权限
autu-access=write ##20行,有效账户可写
passwd-db=passwd ##密码文件
authz-db=authz ##34行ACL访问控制列表
vim /var/svn/xixi/conf/passwd
[users]
harry = 123456
##设置用户名和密码
tom = 123456
vim /var/svn/xixi/conf/authz
[/] ##定义ACL访问控制 ##一定要加上
rarry = rw
tom = rw
################################################
#####服务端
svn的默认端口3690
svnadmin create 路径 ##创建
svnserve -d 路径 ##以守护进程的方式运行svnserve
svnserve -r ##指定虚拟路径,客户端每次会默认访问这个路径
#####客户端
cd /tmp
svn --username 服务端的用户名 --password 服务端的对应用户名的密码 co svn://192.168.4.5/ code
## 建立本地副本 从服务器192.168.4.5上下载代码到本地的code
Store password unencrypted (yes/no)? yes //提示是否保存密码
svn update ##将服务器上新的数据同步到本地上来
svn info svn://192.168.4.5 ##查看版本仓库信息
svn log svn://192.168.4.5 ##查看版本仓库日志
svn diff ##查看所有文件的差异 对比有没有改变
svn diff xixi ##只查看xixi目录的有没有改变
svn cat svn://192.168.4.5/xixi ##查看服务器的内容
sed -i 'd' bb ##删除文件所有目录但为提交
svn revert bb ##恢复删除的所有文件
svn merge -r7:3 xixi ##将xixi从版本7恢复到版本3
使用svn命令测试svnserver服务时可以使用的命令列表
add 添加文件
commint(ci) 提交更新
checkout(co) 下载到本地
cat 查看服务端文件内容
del 删除文件
diff 文件对比
import 导入文件
info 查看版本信息
lsit 查看文件列表
log 查看版本历史
update 更新
mkdir 创建
##在客户端用在前面都要加svn
使用Subversion协同工作
harry和tom修改不同的文件
# sed -i "3a ###tom modify#####" tmp.mount
# svn ci -m "has modified"
# sed -i "3a ###harry modify#####" umount.target
# svn ci -m "has modified"
# svn update
# svn update
harry和tom修改相同文件的不同行
cd harry
sed -i "3a ###tom modify#####" user.slice
svn ci -m "modified"
sed -i "6a ###harry modify#####" user.slice
svn ci -m "modified" //提交失败
Sending svnserve
Transmitting file data .svn: Commit failed (details follow):
svn: File '/user.slice' is out of date(过期)
svn update //提示失败后,先更新再提交即可
svn ci -m "modified" //提交成功
Sending user.slice
Transmitting file data .
harry和tom修改相同文件的相同行
sed -i '1c [UNIT]' tuned.service
svn ci -m "modified"
sed -i '1c [unit]' tuned.service
svn ci -m "modified"
Sending tuned.service
Transmitting file data .svn: Commit failed (details follow):
svn: File '/tuned.service' is out of date(过期)
[root@web2 mycode]# svn update //出现冲突,需要解决
Conflict(冲突) discovered in 'tuned.service'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:p //选择先标记p,随后解决
[root@web2 mycode]# ls
tuned.service tuned.service.mine tuned.service.r10 tuned.service.r9
mv tuned.service.mine tuned.service
m -rf tuned.service.r10 tuned.service.r9
svn ci -m "modified" //解决冲突
使用dump指令备份版本库数据
svnadmin dump /var/svn/xixi > /aa ##备份
svnadmin create /var/svn/haha ##新建版本库
svnadmin load /var/svn/haha < aa ##还原