1.开发中的实际问题
1.1 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流——需求之一:备份!
1.2 这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的代码已经回不到从前了。什么地方能买到哆啦A梦的时光机啊?需求之二:代码还原!
1.3 小刚和小强先后从文件服务器上下载了同一个文件:Analysis.java。小刚在Analysis.java文件中的第30行声明了一个方法,叫count(),先保存到了文件服务器上;小强在Analysis.java文件中的第50行声明了一个方法,叫sum(),也随后保存到了文件服务器上,于是,count()方法就只存在于小刚的记忆中了——需求之三:协同修改!
1.4 老许是一位项目经理,我会告诉你他把每一个版本都保存一份吗?我会告诉你这些工程里其实有很多文件都是重复的吗?我会告诉你老许为这事删了很多电影吗?——需求之四:多版本项目文件管理!
1.5 老王是另一位项目经理,每次因为项目进度挨骂之后,他都不知道该扣哪个程序员的工资!就拿这次来说吧,有个该死的Bug调试了30多个小时才知道是因为相关属性没有在应用初始化时赋值!可是二胖、王东、刘流和正经牛都不承认是自己干的!——需求之五:追溯问题代码的编写人和编写时间!
1.6 小温这两天幸福的如同掉进了蜜罐里,因为他成功的得到了前台MM丽丽的芳心,可他郁闷的是这几天总是收到QA小组的邮件,要求他修正程序中存在的Bug,可他自己本地电脑上是没有这些Bug的,“难道我的代码被哪个孙子给改了?”。是的,小温没来的时候,丽丽是QA小组小郑的女朋友啊!——需求之六:权限控制!
2.安装SVN服务端的程序
2.1.在C盘/D盘中新建一个文件夹Sub,用于安装svn的Server,双击安装包Setup-Subversion-1.8.9-1.msi,傻瓜式安装,一路点击下一步即可
2.2.注意:安装的目录中不要有空格、不要有中文,例如:Program Files文件夹就有空格不推荐使用
3.检验svn服务端的程序是否已经安装
3.创建SVN的版本库
3.1.在D盘新建一个文件夹SvnRep,用于安装svn的版本库(其实就是用命令去创建一个标准的目录结构,用于存放数据)
3.2.在SvnRep文件夹中,新建一个文件夹CRM(此文件夹的名称为要上传到服务器的项目名称)
3.3.打开小黑屏(win+R):运行--->cmd
3.4.在小黑屏中从CRM文件夹去到OA文件夹中的命令
4.启动SVN的服务
4.1.命令行的方法启动svn的服务
命令:svnserve -d -r D:SvnRepOA(注意:这里是版本库的根目录)
4.2注册window服务(注意:win7及以上需要用管理员权限打开小黑屏才能在小黑屏中注册window服务)
sc create SVNService binpath= "D:Subinsvnserve.exe --service -r D:SvnRep" start= auto depend= Tcpip
注意:以上双引号附近的的空格问题
以下是曾遇到的错误,多了一个空格,虽然服务也创建成功,但无法启动
启动会报错误87
4.3 如果启动失败,那很有可能是binpath中的内容有错误,此时只能将已经创建的服务删除,重新创建。
删除服务之前,最好先停止服务。停止服务的命令格式如下:
格式 |
sc stop服务名 |
举例 |
sc stop MySVNService |
删除服务的命令格式如下:
格式 |
sc delete 服务名 |
举例 |
sc delete MySVNService |
5.命令行(只需要了解)
5.1.检出操作(checkout):把SVN服务器中的项目资料下载到自己某个特定的文件夹中(如:D:TrstSVNaaMyOA)
此时MyOA文件夹中会多一个空文件OA.
5.2.上传文件到SVN服务器
在D:TrstSVNaaMyOAOA中随便新建一个记事本(如:HelloSVN.txt),要求把此txt文件上传到服务器中去
1)先进入到OA目录下
2)输入命令 svn add HelloSVN.txt
3)打开D:SvnRepOAconf---> svnserve.conf文件,修改第19行为:anon-access = write(去掉前面的注释!)
4)输入命令:svn commit -m "my first commit" HelloSVN.txt
到此完成上传文件的操作。
5.在eclipse中安装SVN插件