1》 双击执行 Setup-Subversion-1.6.5.msi
详见:SVN安装界面文档
2》 subversion 安装成功后,在启动svn前需要先建立一个文档仓库
我们使用svn服务器端命令 svnadmin建立 如下:
svnadmin create E:\software\repository\svn\yue
3》 建立好文档仓库后,我们进行subversion启动
第一种方式:命令行启动,我们使用服务器端命令 svnserve 如下:
svnserve -d -r E:\software\repository\svn\yue
启动后我们如何知道svn启动成功呢? 我们查看端口使用情况:
netstat -an
我们看到3690端口服务,说明启动成功
第二种方式:安装svn后配置windows自动启动服务
sc create SVN-Service binpath= "E:\software\svn\bin\svnserve.exe --service -r E:\software\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip
binpath 指定svnserve 的路径和命令
start= auto 表示服务自动启动。注意:等于号的左边无空格,而右边必须有一个空格
Displayname、start、depend
在此命令中-r(--root)项目版本仓库的根目录,如果是建单仓库则要指定仓库名
启动服务
net start SVN-Service
查看服务是否添加成功,可以选择windows 控制面板--》》管理工具--》》服务 会发现列表中有SVN-service服务
sc delete SVN-Service
5》svn 命令介绍
将项目检出 至user目录下:svn checkout URL [PATH]
svn checkout svn://localhost/yue/ E:\develop\workroom\user
svn checkout svn://localhost/yue/ E:\develop\workroom\user2
输出内容:
###########################################
# A user\*.* #
# ....... #
# 取出版本1 #
###########################################
将改动的文件提交至版本库:svn commit -m "log des" PATH
我们修改user文档中的user.java文件,修改一些内容,然后提交至版本库:
svn commit -m "this is the first commit " E:\develop\workroom\user\user.java
(如果当前目录已为user, 则只需svn commit -m "this is the first commit " user.java)
输出内容:
###########################################
# 正在发送 user.java #
# 传输文件数据 #
# 提交后的版本为2 #
###########################################
更新你的工作拷贝 : svn update [PATH...]
我们将 user.java 更改后的内容更新至 user2目录
进入user2目录
cd E:\develop\workroom\user2
svn update
或
svn update E:\develop\workroom\user2
输入内容如下:
###########################################
# U E:\develop\workroom\user2 #
# #
# 更新到版本2 #
###########################################
注意:更新要经常频繁的做,尽量让问题及早暴露,便于处理
提交代码前要更新,否则容易产生版本冲突
向版本库中添加一个新文件:svn add PATH...
我们在user中建立一个新文件user.java, 然后添加到版本库中:
svn add E:\develop\workroom\user\user.java
输入内容:
###########################################
# A user.java.java #
# #
###########################################
Ok,添加后我们将新文件更新至user2目录中:
进入user2目录
cd E:\develop\workroom\user2\
svn update E:\develop\workroom\user2
输出内容:
###########################################
# 版本2 #
# #
###########################################
但是并没有更新user.java下来。
添加到版本库,文件并没有提交,因此我们需要提交:
svn commit -m "this is the usert class" F:\develop\workroom\user\UserT.java
输出内容:
###########################################
# 添加user.java #
# 传输文件数据。 #
# 提交后的版本为3 #
###########################################
OK,我们对user2再次更新:
svn update E:\develop\workroom\user2
输出内容:
##############################################
# A E:\develop\workroom\user\user.java #
# #
# 更新到版本3 #
##############################################
从版本库中删除一个文件:svn delete PATH...
假如我们要删除user下的UserT.java文件:
svn delete E:\develop\workroom\user2\user.java
输出内容:
##############################################
# D E:\develop\workroom\user\user.java #
# #
# #
##############################################
但注意的是svn delete 不会立即从版本库删除,而是会在下次提交删除。
svn commit -m "delete this class" F:\develop\workroom\user\user.java
从版本库中删除一个文件,再取消删除操作:svn revert PATH...
假如我们要删除user.java
svn delete user.java
输出内容:
#####################################################
# D E:\develop\workroom\user\user.java #
# #
# #
#####################################################
但这个时候我们又不想删除了,我们可以:
svn revert user.java
输出内容:
#####################################################
# 已恢复 user.java #
# #
# #
#####################################################
显示本地或远程条目的信息 svn info
我们显示出 本地user 目录的信息
首先进入我们的workroom 目录
svn info user
显示版本库中的条目 svn list
我们显示出版本库中yue 的条目
svn list svn://localhost/yue
查看当前工作区状态 svn status
我们进入工作区目录 即 user目录
svn status
系统会列出需要添加,删除或者更新的文件
一般来说有如下几种开头
A添加
D删除
U更新
C冲突
G合并
获取帮助信息: svn help ...
假如我们想查看svn 客户端命令中的 checkout 的使用方法
svn help checkout
获取 add 命令的帮助信息: svn help
svn help add 等同于 svn add --help
6》svn权限控制
第一步 E:\software\repository\svn\yue\conf\svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
anon-access
指明仓库匿名用户访问的权限,可选值(none:不能访问;read:匿名可读;write:匿
名可写),一般设置为none,避免匿名访问,出非你的项目为开源项目。
auth-access
指明被授权通过的用户的权限,可选值同上。
password-db
指定了被授权用户的用户名及密码的文件,可以在passwd 文件中设置用户名与密码。
authz-db
实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限,在
Subversion 1.3 之后,svnserve 和Apache 一样都可以使用“authz-db”文件
第二步 E:\software\repository\svn\yue\conf\passwd
passwd
默认在[users]下有两个被注释了的用户信息,可通过去掉注释或自
己增加一行用户信息。例如:
yue = yue (前面是用户名,后面是密码)
第三步 E:\software\repository\svn\yue\conf\authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
yue = yue
[yue:/] 指明仓库
@yue = rw 按组指定权限
zhenhua = rw 按用户指定权限
* = 其他用户
svn版本控制
最新推荐文章于 2024-05-17 13:43:01 发布