0.说明
在程序开发的时候会有很多的版本,通过手动备份的方式不紧麻烦而且低效易出错。使用SVN来管理版本会方便很多,虽然有一些学习成本,但是学会使用之后会使得开发更加的高效。
本文介绍如何在本地搭建svn服务器以及在eclpise中使用svn插件来管理源代码。
1.安装本地svn服务器
=> 下载svn本地服务器安装程序:官网下载地址->http://tortoisesvn.net/downloads.html
=> 根据你的OS类型和版本下载对应的程序,本文介绍win32版本。
win32-1.8.8版本快捷下载连接(可使用下载工具)->http://sourceforge.net/projects/tortoisesvn/files/1.8.8/Application/TortoiseSVN-1.8.8.25755-win32-svn-1.8.10.msi
=> 安装到本机。
=> 程序默认语言是english,如果需要其它语言,在上面的网址也能找到语言包。这里是32位简体中文的语言安装包->http://downloads.sourceforge.net/tortoisesvn/LanguagePack_1.8.8.25755-win32-zh_CN.msi?download&crazycache=1
=> 如果程序或者语言包下载不了,可以尝试使用下载工具,或者尝试科学上网。
2.建立版本库
=> 在本地磁盘建立一个空文件夹,作为本地版本库(可以看作是个仓库,里面放各个版本的工程文件)。如新建:F:SVNRepository
=> 在Repository上右击->TortoiseSVN->create repository here->然后会弹出对话框告诉你The repository was successfully created.然后还问你要不要创建默认的目录结构(trunk/branch/tags)主干/分枝/标签,可以选择创建,然后会弹出对话框告诉你创建成功。
=> 点击OK关闭对话框。
3.配置用户和权限
=> 打开F:SVNRepositoryconf,其中的svnserve.conf文件保存服务器的一些设置,passwd文件保存用户名和密码。通过修改这些配置文件来配置用户和权限。
=> 通用说明:1.这些文件可以用任意文本编辑器打开。2.文件内容中以#开头的行都是注释掉的,可以通过去掉#来启用。3.文中的英文内容很清楚的说明了某一项是做什么的,如果不明白可以读一下。
=> 打开svnserve.conf,需要配置的是[general]小节中的三个属性。
anon-access = none
auth-access = write
password-db = passwd
含义是:
未验证用户无任何权限 (如果把none修改为read就是给予读权限)
已验证用户给予写权限 (当然也能读)
指定password-db的位置(账户密码文件的位置,passwd在同目录所以直接写passwd,如果在其它目录,可以加上路径,如password-db = ../account/passwd)
=> 打开passwd文件,设置[users]小节-> 添加一行 admin = admin
含义是:用户名admin,密码admin
4.运行独立服务器
=> 旧版的svn需要用到svnservice.exe,新版改在dos(cmd)操作窗口下用sc命令建立服务器并开启服务。
=> 创建一个批处理文件(.bat),在其中写上:
---------以下--------
REM ===创建svn服务===
sc create svnservice binPath= "C:Program FilesTortoiseSVNinsvnserve.exe --service -r F:SVNRepository" DisplayName= "svnservice" depend= Tcpip start= auto
REM ===开启svn服务===
net start svnservice
pause
---------以上--------
含义:binPath路径代表svn的安装目录下的svnserve.exe文件路径;
-r为root的简写,F:svn
epository是前面配置的版本库路径;
DisplayName是设置svn服务的名称;
start=auto为将svn服务设置成开机启动!
=> 另附:
A. 停止服务
使用"net stop svnservice"停止服务。
B.删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice"。
另:如果出错,提示为 sc openSCManager 错误 5 ,原因是因为权限不足。在运行CMD的时候使用管理员权限,或者运行bat文件时,使用管理员身份。
5.初始化导入
导入需要版本控制的工程文件到svn版本库:
=> 在需要导入的工程文件夹上点右键-> TortoiseSVN-> Import,然后在URL栏中填入svn://localhost/folderName
=> (folderName是随意取的,确定之后,以后svn操作路径就是这条了!),点确定后会让你输入用户名和密码(第3步的设置),输入正确后就会提示文件正在导入.
=> <font color="red">错误处理:如果在这里遇到“由于目标计算机积极拒绝,无法连接”的错误,那么肯定是你的svnserve服务没有开启,执行第4步就好了。</font>
=> 需要注意的是,这里是svn文件库与svn服务是同一台计算机的情况, 所以可用localhost, 其它机器如果要访问svn服务, 应该用svn://svn服务器的IP地址, 例如svn://192.168.1.125
6.导出和提交
=> 在磁盘(你的workspace)中创建一个空的文件夹,用来检出(checkout)版本库中已经提交的最新的代码。例如新建 D:workspacemyproject
=> 在新建的空文件夹上右击-> SVN Chcekout-> 然后选择版本库路径(第5步中提交的路径)->点击OK后会看到代码被检出到当前文件夹中,并显示版本号。
=> 修改检出的源文件后,在文件夹上右击,先SVN Update,将版本库中的内容更新到本地,然后SVN Commit,将本地版本提交到版本库中。
=> 提交到版本库中之后,本地文件可以随意删除,在其它地方新建空文件夹,然后就可以从respository中checkout出最新代码。
7.Eclipse中安装svn插件
=> 打开Eclipse->help->Install New Software->add
name:subclipse 1.6.x
url:http://subclipse.tigris.org/update_1.6.x
->OK
=> 选中subclipse,点击finish,一直NEXT直到安装结束。
8.Eclipse中导出/导入项目
=> 在需要导出到版本库中的项目上点右键-> Team-> Share Project-> 选择SVN(如果无效就双击)-> next-> 填入需要导入库的URL,如svn://localhost/
=> 选择一个文件夹名(可以使用工程名),然后选择注释,点击next到finishe。
=> 然后可以在工程上右键->Team->可以选择update或者commit,同步骤6的操作。
9.常见错误解答
=>在Eclipse的Svn资源研究库中创建repository时,可能会出现 **malformedfile,svnserve.conf:12: Option expected
为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,所以在第3步的时候,去掉#的时候,应该把#后面的空格也去掉。