Subversion 使用说明
概述
本文档仅供快速使用Subversion版本控制使用。详细配置及控制请访问www.google.com。
1. 服务端
1.1.创建版本库
命令:svnadmin create [Project]
例:svnadmin create TestDb
默认目录为提示符显示的当前目录。若要指定目录可以再Project前加路径。如:svnadmin create G:"svnroot"projects"TestDb。
图1.1
创建成功后,在指定目录下会自动生成conf、dav、db、hooks、locks等文件及文件夹(图1.1)。
1.2.创建用户
命令: htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
详细参数内容请使用htpasswd ?命令查看。passwordfile指用户密码的存储文件。
图1.2
使用htpasswd创建用户以用户密码。用户密码可以选择不同的加密方式,默认MD5单向加密。(图1.2)
1.3.创建用户组、用户授权
图:1.3
用户组及用户权限分配信息保存在accessFile文件内,此文件存放于svn根目录下的config目录内。如图1.3所视,accessFile可以分为groups用户组及用户权限分配。权限分为r:只读权限、w可写权限。其中[/]为svn根目权限。[TestDb:/]控制具体项目权限。此例中为TestDb项目的访问权限。
注:权限可分配给用户组或具体用户。
1.4.远程修改密码
1. 将文件ApachePasswd.cgi及ApacehPasswd.cgi.ini复制到Apache的CGI脚本目录下,通常是cgi-bin目录。
2. 确保cgi-bin目录可以运行cgi脚本
3. 修改配置文件ApachePasswd.cgi.ini中authuserfile路径,如下
[path]
authuserfile= C:"SVN_repos"passwd 这里改为你的Subversion所用的authuserfile全路径
2. 客户端
2.1.IE浏览
图2.1
使用IE访问,在IE地址栏中输入svn版本库地址。此例中为http://192.168.1.222:8888/svn/TestDb/(注意:大小写相关),输入用户名及密码即可访问。(TestDb为我们要访问的项目)
2.2.Windows插件
TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi可从http://subversion.tigris.org/获取。[①]
2.2.1. 主要菜单说明
图2.2.1
Create repository here: 创建版本库
Import:添加文件[②]
Export:导出
Checkout:从服务器获取一个拷贝至本地[③]
Delete:删除文件(需要权限允许)
Svn Update:更新为服务器版本
Svn Commit:提交更改
Show log:查询文件或文件夹的日志,并可对不同版本的文件进行比较
Merge:合并文档[④]
2.2.2. 图标说明
图2.2.2
现在你已经从Subversion版本库中检出了一份工作复本,你可以在资源管理器中看一下这些文件的图标有什么变化。这也正是TortoiseSVN这么流行的原因之一。TortoiseSVN加入了被称为重载图标的功能重载了原始的文件图标。根据文件的Subversion状态的不同,重载的图标也不同。
一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常. |
在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。 |
如果在提交的过程中出现了冲突图标变成黄色感叹号。 |
如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。 |
如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。 |
这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。 |
加号告诉你有一个文件或是目录已经被计划加入版本控制。 |
2.3.Microsoft Visual Studio 2005 插件
AnkhSetup-1.0.1.2734-Final.msi 可从http://ankhsvn.tigris.org/获取。
2.3.1. 创建项目
图2.3.1
通过开始菜单中的Add solution to Subversion repository项,向版本控制服务器添加项目。(如:图2.3.1)
2.3.2. 加载项目
图2.3.2
首次启动项目,Ankh将会使本地项目与Subversion相关联。
2.3.3. 主要菜单
图2.3.3
Update:更新
Diff:版本差异查看
Commit:提交当前版本
Revert:撤销并同步服务器版本
Lock:加锁
2.4.Eclipse插件
Subclipse可从http://subclipse.tigris.org/获取
3. 密码修改
访问:http://192.168.1.222:8888/cgi-bin/svnpwd.cgi。
密码长度不小于6位。
[①]可以从http://www.subversion.org.cn/tsvndoc/获取详细帮助文档。
[②]添加之后并没有和控件软件相关联。需要Checkout。若Checkout失败删除目录所以文件。重新Checkout。
[③] Checkout成功后,本地文件和文件夹显示图片将有所改变。
[④]需要“拷贝-修改-合并” 方案
---------------------------------
权限控制模版
[groups] -- 定义组
g_vip = morson
g_manager = michael
g_beijing = scofield
g_shanghai = lincon
g_headquarters = rory, linda -- 添加用户rory, linda入组g_headquarters
g_docs = linda
[arm:/]
@g_manager = rw -- 组RW权限
rory = r -- 用户R权限
* = r -- 所以用户都是只读的
[arm:/diary/headquarters]
@g_manager = rw
@g_headquarters = rw
@g_vip = r
* = -- 所以用户均无权限
[arm:/diary/beijing]
@g_manager = rw
@g_beijing = rw
@g_vip = r
* =
[arm:/diary/shanghai]
@g_manager = rw
@g_shanghai = rw
@g_vip = r
* =
[arm:/ref]
@g_manager = rw
@g_docs = rw
* = r
[arm:/temp]
* = rw