Subversion是新一代的开源的版本控制工具,目前有望替代CVS,成为版本控制的首选系统。subversion在Windows下的安装和使用也很方便。
1、下载subversion:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
最新版本:
2、下载客户端
TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
http://tortoisesvn.net/downloads
TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi
3、安装
直接双击安装程序,分别安装subversion服务器和客户端。
4、创建版本库
Subversion的版本库(repository),就是位于服务器端统一管理和储存数据的地方。要创建一个版本库,首先要确定采用哪种数据存储方式。在Subversion中,版本库的数据存储有两种方式,一种是在 Berkeley DB数据库中存放数据;另一种是使用普通文件,采用自定义的格式来储存,称为FSFS。
两种存放方式各有优缺点,这里有一个简明的比较。
特性 | Berkeley DB | FSFS |
对操作中断的敏感 | 很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复。 | 不敏感 |
可只读加载 | 不能 | 可以 |
存储平台无关 | 不能 | 可以 |
可从网络文件系统访问 | 不能 | 可以 |
版本库大小 | 稍大 | 稍小 |
扩展性:修订版本树数量 | 无限制 | 某些本地文件系统在处理单一目录包含上千个条目时会出现问题。 |
扩展性:文件较多的目录 | 较慢 | 较慢 |
检出最新代码的速度 | 较快 | 可以 |
大量提交的速度 | 较慢,但时间被分配在整个提交操作中 | 较快,但最后较长的延时可能会导致客户端操作超时 |
组访问权处理 | 对于用户的 umask 设置十分敏感,最好只由一个用户访问。 | 对 umask 设置不敏感 |
功能成熟时间 | 2001 年 | 2004 年 |
确定了具体的数据存储类型,只要在命令行当中执行svnadmin命令就可以创建一个Subversion版本库,命令如下:
svnadmin create d:/www/svn_repository
也可以在资源管理器通过TortoiseSVN创建
创建好的repository结构如下:
5、配置用户
用记事本打开d:/www/svn_repository/conf/svnserve.conf
取消password-db = passwd前面的注释,修改后为:
[general]
password-db = passwd
打开d:/www/svn_repository/conf/passwd
取消用户名前的注释,修改后为:
[users]
harry = harryssecret
sally = sallyssecret
保存文件。
6、启动subversion服务器
在命令行运行:
svnserve -d -r d:/www/svn_repository
注意:不要关闭命令行窗口,否则会停止subversion服务器。
7、初始化导入
在希望导入的文件夹上点击右键,选择
TortoiseSVN->Import...
url位置填写:svn://localhost或者svn://youripaddress
用户名/密码提示框输入passwd中的用户名和密码,导入成功后的界面:
8、客户端基本操作
建立一个项目文件夹D:/svn_test
在文件夹上点击右键,选择SVN Checkout …,url位置输入:svn://localhost或者svn://youripaddress
即可得到一份项目文件,修改文件并保存后,在文件上点击右键,选择SVN Commit ...即可更新版本。
在项目文件上点击右键,可以看到TortoiseSVN更多的操作选项:
如果选择Show log,即可看见文件的操作历史,在版本1上点击右键,选择Compare with working copy可以看到当前工作文件和版本1的区别。
9、将Subversion作为服务启动
Windows命令sc可以用于创建服务,在命令行窗口执行以下命令:
sc create svn binpath= "/"D:/www/Subversion/bin/svnserve.exe/" --service --root /"D:/www/svn_repository/""
出现[SC] CreateService SUCCESS表示服务安装成功,这个时候在系统服务中可以看到svn服务,设置为手动或自动启动就随你了。
需要注意的是,命令行中binpath=后面的空格和/都需要保留,用于sc命令解析后面的语句。