1. 软件下载
1.1 在svn论坛网站下载:下载svn服务器端及客户端安装程序,链接地址:www.iusesvn.com ,但是需要先注册用户方可下载
1.2 在官方网站下载:http://subversion.tigris.org/
2. 安装工具
服务端:svn-1.4.6-setup-for-apache2.2.x.exe
客户端:TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi
3. 服务器端和客户端的安装
3.1 服务器安装
直接运行svn-1.4.6-setup-for-apache2.2.x.exe,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
3.2 安装TortoiseSVN
同样直接运行TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi
按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
4. 版本库的建立
运行Subversion服务器需要首先要建立一个可以看作服务器来存放数据的文件夹,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create E:/tobacco
就会在目录E:/tobacco下创建一个版本库。
我们也可以使用TortoiseSVN图形化来完成这一步:
在目录E:/tobacco下"右键->TortoiseSVN->Create Repository here...“,然后可以选择版本库模式,这里使用默认即可,然后就创建了一系列目录和文件。
图片内容如下:
5. 配置用户和权限
(进入E:/tobacco/conf文件夹下面)
5.1 配置passwd文件
打开passwd文件,在user下面添加用户和密码
[users]
yanyan = yanyan (用户名 = 密码)
luomin = luomin
(注意:用户名及密码与“=”号之间空一格)
5.2 配置svnserve.conf文件
去掉 # anon-access = read、# auth-access = write、# password-db = passwd、 #authz-db = authz ,前面的"#" 号,即: authz-db = authz (权限文件设置)
anon-access = read (未被授权的用户为只读权限)
auth-access = write (给被授权的用户写的权限)
password-db = passwd (设置用户和密码)
5.3 配置authz文件
[groups]
admin = svnadmin (管理组)
develop = yanyan (开发组的成员)
[/]
@admin = rw (根目录下面只有管理组的成员可以提交)
* = r
[/trank] (trank文件夹下只有开发组可以提交,管理员为只读的权限)
@develop = rw
@admin = r
* =
6. 运行独立服务器
svnserve -d -r E:/tobacco (每次使用项目时,这个命令都要被启动)
如果不想用命令启动,可把此命令集成到服务里面,那么需要安装SVNService服务,可下载 一个SVNService,把SVNService 放到subversion安装文件bin目录下面,然后在命令行里运 行:SVNService --install -d -r E:/tobacco 即可。
7. 初始化导入库目录
7.1 首先把库根目录检出到作为存放库文件的目录下
进入到存放库的文件夹下,右键--》SVN Checkout --》如下图:
7.2 把E:/CheckTobacco 下面的文件导入到库里面去
8. TortoiseSVN 的基本用法
8.1 浏览库目录
在任一空白处,右键--》TortoiseSVN --》Repo-browser,在弹出的框框里输入ip地址,假如我现在浏览远程服务器172.16.26.22的库,则为:svn://172.16.26.22
8.2 文件的添加
第一步:选中要添加的文件---》右键--》TortoiseSVN--》+Add
第二步:选中要添加的文件---》右键--》SVN Commit
8.3 取消文件的添加
添加的文件还未提交之前,选中已经添加的文件--》右键--》TortoiseSVN --》Undo Add
8.4 文件的修改
获得最新版本后,修改相关的文件,修改后,文件或文件夹上面的绿色对号“”
如果修改后,则“”将变为红色叹号:
8.5 取消文件的修改
添加的文件还未提交之前,选中已经添加的文件--》右键--》TortoiseSVN --》Revert
8.6 删除本地文件
选中文件 ---TortoiseSVN --》x delete ,但是这样只是本地删除,而库中并未删除,所以,文件需要管理员到库中无删除。
8.7 撤销删除的文件
如果刚删除的文件又不想删除了,如果你刚刚做了第一步,那么在删除文件的文件夹下 面 右键 ---TortoiseSVN --》Revert ,删除的文件就会重新回到本地文件夹下面。
8.8 显示文件的版本信息
选中文件--》右键 ---TortoiseSVN --》Show log ,显示文件修改的日志信息。
8.9 给文件或文件夹打标签
选中要打标签的文件或文件夹,右键--》TortoiseSVN --》Branch/tag ,在弹出的框框内填写要打的标签的位置:
说明:svn中不同于cvs,在cvs里打标签就直接显示在打过标签的文件上,而在svn里,打标签想当然把要打标签的文件复制到了另一个地方。
8.10 比较两个文件的不同之处
选中要比较的文件,右键--》TortoiseSVN --》Diff with previous version,在弹出的框框里,显示文件的当前版本和上一版本的不同之处。
8.11 给文件加锁
选中要加锁的文件,右键--》TortoiseSVN --》Get lock ,这样,你在修改文件的同时,别人就无法修改,当你提交文件后,锁会自动解除,但是,加锁是相当复杂的,所以,建议不加锁。
8.12 解决冲突
冲突分好几种情况
第一种:两个或多个人同时修改同一个文件,如果修改的地方不重叠,提交时照样会提醒你冲突,然后,选中发生冲突的文件,右键获得最新版本,然后选中冲突文件,再次提交即可。
第二种:当两人修改同一个文件,且第二个提交者人未获得最新版本时,而且修改的地方相互重叠时:当提交时会报错,这个时候需要确定哪个才是正确的,你可以选中出错的文件,右键-从显示的日志中获得上次的提交人,然后两人确定正确方案,获得完美的文件
第三种:首先选中发生冲突的文件--》右键--》TortoiseSVN-->Edit Confilcts-->在弹出的框框内选择正确的一份文件---》右键--》Use this text block--->关闭窗口--yes --> 点击文件右键---》Resolved ---ok完成!
9. 说明
我介绍的配置是svn单独使用以及与SVNService想结合使用的两个方法,还有svn与apache相结合使用的方法更是一种不错的选择,虽然配置有点麻烦,但是当用起来时却比较好用,大家有兴趣的可以去研究下。
这里只是简短的介绍了最基本的用法,如果想了解更多,还许自己多研究一下。
如果图片不显示,你可到我发布文章的同时上传的图片中去核对