SCM
SCM:软件配置管理(Software Configuration Management (SCM) )
cvs + bugzilla
svn
scm是一门用来记录并控制软件产品数据的管理工具。
cmm(软件成熟度认证)
版本控制中的几个概念:
Repository(仓库)
workspace(工作台)
delta()
baseline(基线)(HEAD)
branch(分支)
label(标签)(tag)
workspace:比如说有两个模块各有两个版本,把其中的一个版本拿下来,构建成一个项目,做完更改之后在放回去。
workspace有一个隔离性:如果另外有人也想拿出来,这时候就会拿到两个模块的另外一个版本,这样两个互相工作中是不会出问题的。
delta version(版本) delta指的两个版本中不一样的地方,对一个文件不同版本的管理,delta会保存不一样的地方,起到有效节省空间的作用 就是delta存储的是变化的那一部分。
除了文件有版本之外,整个项目也是有版本,就是struts1 和struts2一样。
forward delta 和backward delta区别:
一是先都存1.0首先的版本,向后加delta
branch(分支)
1.1处出现bug 然后有人专门为了解决这个bug而分支,然后再在后面进行会合
其实在项目中的分支应用的更多,就好像不同的地区要用不同的版本,主分区中分出机构版本
SCM中最主要的功能是 版本控制 (version control)等:
实际项目中的自动化构建
在项目比较大的时候,比说说有c有c++ 有java不可能在一个ide中实现自动化,所以就要需要一些脚本程序,构建脚本能实现这种功能。自动化编译完成,自动化的测试,自动化的生成报告,在java里面ant是一种基于命令行的构建脚本的工具,maven也是
如果两个版本有所不同,可以把两个合并在一起,merge
客户端:tortirseSVN
服务器:subversion
过程:
svn
管理权限:D:\workspace\svnrepo\conf\svnserve.conf
# password-db = passwd
可以在passwd中加上u1=p1
启动服务器:svnserve –d –r svnrepo
这里的d指的是后台运行 r是root运行 就是超级管理员运行
cmd窗口不能关,窗口关了,服务也就关了
- 下载并安装tigris svn server 1.6.5
- 创建中心库
-
- svnadmin create d:\share\svnrepo
- 修改权限配置
-
- 修改conf/svnserve.conf
- 修改passwd
服务器运行方式
使用客户端 :
直接打开会提示 is a shell extension…
可以查看struts等的最新的源码,repo-browser
一般的开源项目都是按照里面的目录来创建的
如果要把库里面的内容下载下来就是checkout
先checkout现在一个项目 会出现.svn
这时候就会有更多的选项了,,这时候还会有commit选项
然后就是要写提交的原因了。。。
commit
然后输入密码jimmy jimmy就可以提交上去了
如果这时候还有另外一个用户,想拿到源码,可以checkout
如果是根目录的话就会把所有的东西都下载下来
如果没有启动server的话,eclipse是会报错的
对于tesmsynchronizing。。。窗口的理解:这个窗口中如果有项目有改变的话会自动的下载下来。。
show views svn
如果两个人的修改是不一样的,会报错
解决方法挺多,一是先更新下来,再修改自己的,这时候会出现不同的文件,因为有不同的版本,自己的版本和远程的版本都会给显示
还有一个使用选项
一般使用
cvs更svn完成的是一样的东西,但是svn更先进