- 核心概念
- 生命周期
- 具体用法
- 分支
- 版本回退
核心概念
SVN是一个开源的版本控制系统,也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
- repository(源代码库):源代码统一存放的地方
- Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
- Commit(提交):当你已经修改了代码,你就需要Commit到repository
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。
如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。
生命周期
- 创建版本库
- 检出(checkout)
- 更新(update)
- 执行变更
- 复查变化
- 修复错误,revert操作重置对工作副本的修改
- 解决冲突
- 提交更改
手动创建版本库
首先,在服务端进行SVN版本库的相关配置
手动新建版本库目录
mkdir /opt/svn复制代码
利用svn命令创建版本库
svnadmin create /opt/svn/runoob复制代码
使用命令svnserve启动服务
svnserve -d -r 目录 --listen-port 端口号复制代码
1、打开visualSVN,选择server manager,(可视化工具)
2、一个服务器,多个客户端。
3、repositories(版本库),点击右键新建版本库--->regular FSFS repository-->下一步--》给版本库起名字--》下一步--》设置权限--》customize permissions--》添加成员--》所有成员可以读写--》选人--》记录版本库路径--》单击仓库名赋值版本库地址--》客户端根据地址拉取数据--》创建用户
4、获取服务器资源--》进入某个文件夹下,点击右键-》SVN检出--》输入版本库地址--》检出深度--》全递归--》最新版本,也可以选择某个过去版本,从显示日志里查取
5、在目录下添加文件,做出修改,然后右击文件--》SVN提交
6、更新命令,多人操作时,需要在提交之前时,更新文件
7、版本回溯:右击具体文件,找到与前一版本比较,就会出现两个版本的不同点,右键选择更新至版本,选择具体版本
8、冲突问题
不同的人对同一文件的不同修改会导致冲突,SVN会把两种修改放在一个地方,分别用箭头表示版本,手动解决冲突,再提交
9、文件被锁定后,不可再更新提交,可以解除锁定
10、可以使用编辑器自带工具进行操作,不需要客户端了,需要服务器,hbuiilder里工具--》安装--》插件安装--》SVN插件,空白地方--》右键--》导入--》SVN--》从SVN检出项目--》选择版本库地址--》创建新的资源库地址--》设置新建的文件夹,文件修改后,右键--》选择版本管理,提交