源代码管理工具 -SVN

1、为什么要进行源代码管理?
为了解决在软件开发过程中,由源代码引发的各种繁碎、反复、耗时的问题。

2、源代码管理工具的作用
2.1、能够追踪一个 项目从诞生一直到定案的过程
2.2、记录一个项目中的所有内容的变化
2.3、方便查询各个版本的修订情况,并且可以无数的恢复以前的版本

3、常见的源代码管理工具
3.1、CVS 开启了版本控制的先河,1990年诞生的主流管理工具

3.2、SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
集中式 :代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。

3.3、Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

分布式:相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

一、SVN 的详细介绍
1、服务器 :保存所有版本的代码库
2、客户端:只保存和自己相关的代码,只有部分的代码库

两种学习策略

3、SVN、CVS采用的策略是 拷贝 -- 修改 -- 合并

4、VSS  锁定 ---修改 -- 解锁

5、安装下载地址
Visual SVN Server下载地址
http://www.visualsvn.com/server/download/

根据安装的步骤去安装就好了,安装好了就相当于服务器的一端,我们只需要这个服务器中去实行和提交即可。
常用的命令
1、checkout是将服务器上的代码下载到本地 (下载所有的文件)

2、 commit 是将修改之后的文件提交到服务器 (只提交修改之后的文件)

3、update 是将服务器上的代码更新到本地(只会更新被修改的文件 )

SVN客户端命令
svn checkout :下载服务器的代码到本地 (简写svn co)
svn commit :将改动的文件提交到服务器(简写svn ci)
svn update :更新服务器的代码到本地 (简写svn up)
svn add :向本地的版本控制库中添加新文件
svn delete、svn remove :从本地的版本控制库中删除文件(简写svn del、svn rm)
svn move :移动文件或者目录或文件更名
svn mkdir :创建纳入版本控制下的新目录
svn revert :撤销之前的一切修改
svn merge :将两个版本之间的差异合并到当前文件

svn info :查看文件的详细信息
svn diff :查看不同版本的区别
svn log :查看日志信息
svn list :列出版本库下的文件和目录列表
svn status :查看文件状态(简写svn st)
svn help :获取帮助信息(比如svn help ci)
svn lock :加锁
svn unlock :解锁

二、具体的实现
1、检出 checkout
将项目检出(下载) 至本地
svn checkout URL [PATH]
svn co URL [PATH]
注意:这里的中括号[ ]代表可选(可以省略)
可以在书写指令的同时指定用户名和密码 –username=用户名 –password=密码

示例
svn checkout https://192.168.1.106/svn/Weibo/ /Users/lnj/Documents/workspace
前面代表的是:代码仓库的远程地址
后面代表的是:将代码下载到本地的哪个路径
如果省略后面 /User的路径,就下载到命令行当前所在的路径

2、提交
将改动过的文件提交至服务器
svn commit -m “注释” [PATH]
svn ci -m “注释” [PATH]
注意:一定要养成写注释的良好习惯,每一个注释都可能是我们恢复代码的关键

示例
svn commit -m “修改了User.m文件” /Users/lnj/Desktop/workspace/Weibo/branches/User.m
后面代表的是:提交哪个文件到服务器
如果省略后面的路径,就将命令行所在路径中所有改动过的文件提交到服务器

3、添加 (对于新建的文件)
提交一个新建的文件到服务器,需要2个步骤
添加新建的文件到本地的版本控制库中:svn add
提交刚才的添加操作到服务器:svn commit
如果直接提交一个没有添加到本地版本控制库中的文件,会报下面的错误
is not a working copy

4、删除
删除服务器上的某个文件,需要做2个步骤
将文件从本地的版本控制库中移除:svn delete 、svn remove
提交刚才的删除操作到服务器:svn commit

将文件从本地的版本控制库中移除
svn delete PATH

示例
svn delete /Users/lnj/Desktop/workspace/Weibo/branches/User.m
/Users代表后面的是:将哪个文件从版本控制库中移除

5、更新
将服务器的最新代码更新到本地
svn update [PATH]

示例
svn update /Users/lnj/Desktop/workspace/Weibo/branches/User.m
橙色代表的是:更新哪个文件的内容
如果省略橙色的路径,就更新命令行所在路径的所有内容

将文件恢复至某个版本
svn update -r 版本号 [PATH]

6、错误恢复
不小心写错了很多东西,想撤销所写的东西(还未把修改提交到服务器)
svn revert

不小心删错了文件,想把文件恢复回来(还未把删除提交到服务器)
svn revert

不小心写错了很多东西,想撤销所写的东西(已经把修改提交到服务器)
svn update -r 版本号

不小心删错了文件,想把文件恢复回来(已经把删除提交到服务器)
svn update -r 版本号

三、正规的SVN项目
Subversion 提供了主线、分支管理技术,使得在软件开发中可以更方便、灵活的对项目的进度、版本的发布、版本的维护、软件功能的拓展与定制进行管理。
主线(trunk):一个项目建立时就存在,并伴随着项目的成长而不断的成长,直到项目完全结束。
分支(branch):一般是指功能分支,例如:我们的某个项目要添加一个模块,但这个模块又比较复杂,实现难度比较大。为了不影响主线的稳定,我们就可以创建一个功能分支来专门开发这个模块,当这个模块开发完成以后,并通过测试部门的各项测试,再合并到主线中去。。
标签(tag):标签和分支一样,也是一个目录,不过这个目录中一般存放的是发布的信息(当然我们也可以只用分支,但是用标签更清楚明了一些)。
要注意,标签目录里面的代码,要进行严格的控制,除了修正 BUG 外,不能做任何其他的事情。

四、SVN使用注意
经常更新:降低冲突的可能性
提交前需在本机测试通过:降低将问题代码传到版本库
提交时一定写备注(注释):方便其他员工查看和自己以后回顾
对于不需要提交的文件不要提交到版本库

提示
每次修改之前最好先更新
每天下班前提交当天运行通过的代码
每天上班第一件事情更新前一天的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值