SVN:subversion简称 版本控制
checout==把整个项目源码下载到本地,第一次下载时
update==本地源码更新至服务器上的最新版本
commit==将本地源码更新内容提交到服务器
svm架构
支持linux和windows,更多安装在linux下。
--svm两种运行方式:1-独立服务器 2-借助apache运行
--svm两种存储版本数据方式:
1-BDB==一种事务安全型表类型
2-FSFS==一种不需要数据库的存储系统
服务器中断时,BDB可能锁住数据,所以FSFS更安全一点。
--常用svn工具 如:
window下svn服务器可视化工具VisualSVN(默认svn服务为黑窗口命令行操作)
客户端工具TortoiseSVN
idea svn插件
客户端工具TortoiseSVN操作
文件夹右键:SVN Checkout==下载仓库中文件到本地
文件右键 Tortoise SVN-》add -》文件右键 SVN commit == 上传文件到svn服务器
文件右键 SVN update == svn服务器文件最新同步更新本地文件
文件右键 SVN commit == 本地文件作为最新版本上传到svn服务器
文件右键 Tortoise SVN-》show log == 查看历史版本 -》选中版本右键update item to revition ==恢复版本
文件右键 Tortoise SVN-》delete == 本地文件删除 -》文件夹右键SVN commit == 彻底删除
import==把本地文件导入到svn中
export==把仓库作为目录导出到本地
冲突问题与解决
--冲突情况:多个用户同时操作一个文件时,就可能产生冲突。
a、b两人版本相同为10,a用户修改后提交了此时版本为11,b用户没有更新到版本11也同时修改提交,
此时报错,点击更新后会下载几个文件。
1-与原文件同名文件==服务器文件和本地文件合并后结果
2-原文件名加了.mine == 本地未修改时源文件
3-.rxx == 修改前后各版本文件
--解决:选择错误文件右键,编辑错误,修改后再次点击commit提交
--建议:为了避免冲突的产生,尽量每次修改前先smv update更新同步一下,如何再修改提交。
snv目录结构及作用
turnk: 主干目录,目录下的文件为基准文件 一般在主干上操作 主开发
branches: 用于开发的分支目录 分支
分支定义规则:project name+日期时间+功能点
tags: 用于发布的版本目录 一般只读 做里程碑的标记
tars定义规则:project name+版本号 版本号定义为三段数字
svn打分支或标签、主干合并
打分支或标签
主干相互合并
----主干合并到分支:保证主干最新,在分支操作
----分支合并到主干:保证分支最新,在主干操作
svn命令行操作
bin目录下存放svn相关命令
svnadmin:给服务器管理员使用,创建仓库、账号
Svnserve:启动svn服务器
Svn:客户端命令工具
lconv目录 存放svn依赖插件
licenses目录 存放版权信息文件
share目录 存放国际化文件
当安装完成后,subversion默认安装目录bin加入到环境变量path,如果没有则要手动添加。
服务端
一、创建仓库查看目录结构
1-创建目录
2-cmd进入到创建的目录
3-执行命令:"Svnadmin create 仓库名称 "后生成一个仓库,该目录下会多出一些文件
conf 存放当前仓库的配置文件
db 存放仓库版本的控制文件
hookks 仓库脚本
locks 锁文件
二、启动服务器
1-cmd进入创建仓库的目录
2-执行命令:Svnserve -d -r 创建仓库的目录路径
三、测试客户端连接服务器,默认窗口3690
1-cmd进入创建仓库的目录
2-执行命令:Svn checkout svn://localhost/仓库名称
客户端
1-进入cmd
checkout:svn checkout svn://localhost/项目名称
add:svn 待提交的文件
commit:svn mommit(报错)
出错原因:1-没有日志信息
命令:svn 待提交文件 -m 'ok' (还是保错)
出错原因:2-权限问题
解决:在创建仓库的目录下conf目录下svnserve.conf文件修改anon-access = write
执行svn comit -m 'over'即可提交
update:svn update