scm,就是版本控制问题,开发人员在 合作的时候,出现的问题,怎么集成。
了解文件的修改过程。
MEKE时,经常用错文件的版本
多人修改一个文件,有些人的结果被冲掉了
程序误删了,只能重写。
花了一周时间,终于查出了一个错误,只要查积累的库,
scm就能帮大家完成这样的问题
调试过程中,经常出现“扯皮”,搞不清楚哪些问题
版本太多,有的太久,查看不方便
评定一个人的工作成果不能以打多少代码来评定。
scm就是解决:开发的过程比我们的问题更加复杂
UNIX:
SCCS->CODEMOR->TEAMWARE
RCS->CVS
SVN
版本控制,还可以控制二进制的版本
更改请求管理系统
集成有需求的管理系统
cvs+bugzilla 有时一块用。
SCM的定义:
SCM:是一门记录并控制软件产品数据的管理工具
先讲操作,再讲理论就更加好了。
cmm?是什么意思,其实就是一个标准,是建筑公司的资质。
repository:核心仓库。如果有两个版本,就扔到里面,放在工作台里,
workspace:可以分隔隔离,版本隔离,互相工作,就没冲突
deita:也叫version (revision),版本一和版本二之间的
查别就是deita
SCCS:
RCS:
branch: 分支系统,什么时候会产生分支。分支 两个之后,还需不需要整合。
要看你们项目的要求。
bas:
ant:
脚本自动化:
实际上项目的自动化是怎么做呢?最hao的是自己手写maven ,在大的项目里头,有人写脚本,自动化。在java里面ant就是 构建脚本的方式。
svn的入门:
1.服务器 2.客户端
站在程序员角度来讲:先下载软件,先在目录下的passwd文件里建立几个登陆用户,然后用cmd里,新建一个库,再运行服务器
一个公司建立一个库。
第一步,建立库
第二步,人员权限,去哪里查。找到passwd,
第三步,把库启动。cmd:输入svn ,svnadmin create svnrepo,svnserve -d -r svnrepa
svn服务器的运行方式,一般有两种:一个是apache http;一个是svnserve;
开人员的角度:
打开tortoiseSvn,是和你的windows外壳结合到一起的。在文档里,按右键就发现有两个按钮(svn checkout、tortoiseSVN)
struts svn 地址:上网找到之后,点击tortoiseSVN/Bep-browser 把http地址放到url,就能查到struts 最新的源码。(trunk是主干,tags就是struts的版本。)
check out 的操作。在下载的过程就是check out。上传的过程,就是check in。
commit=check in。
svn 和 eclipse有一个插件,要下载下来安装。
1方式:eclipse 安装插件,1.help/install打开,把url地址放在里面
2方式:将压缩文件下载,安装后,打开eclipse,help/install打开,找到安装地址。
最简单的方式,连上网,就可以自动完成。
有一个疑问要在另一台机器上用这个软件,那不是要重新安装eclipse,再安装插件吗?老师的回答是:直接把整个eclipse打包到另一台机器就可以用了。
当你把svn安装好在eclipse里,打开视图,把svn资源库打开。
url:svn://localhost
就出现项目文件。
如果你要将自己项目分享,那就右键,team,share project
新机器链接svn里导出共享的项目,指定的项目右键选“检出”,就
能导出到自己的eclipse里。
如果要更新整个项目,就点项目右键,整个更新。
有另一个视图,方便检出检入操作,就是同步,如果你这里有改动,就会自动提交
如果别人有改动,这里也自动更新。
比较:(经常使用)要跟其他库比较一个class,右键,compare with ,里面选择比较版本。
如果两个人改了同一个文件,那会出现什么?svn会将第一个人提交,第二个提交就出现告诉你之前有人提交了。
svn 和cvs比较 ,svn牛的多
svn你在项目中删了,在提交过程中,可以加上去的。
cvs在提交的过程中断电,版本就会混乱,而svn就没这个问题
还有其他更好用的地方。用svn就行了,
数据结构 对于将来自己写框架还是比较重用。