svn的使用

来源:互联网 发布:ibm备份软件 编辑:程序博客网 时间:2024/05/16 10:23

先介绍两个工具

1.Setup-Subversion-1.7.7   (svn服务端)

2.TortoiseSVN-1.7.11.23600-win32-svn-1.7.8   (svn客户端)

===========================================================================================

1.安装准备工作

安装好svn服务端,然后把安装路径写入PATH系统环境变量中,通过运行--crm--svnserve

如果出现

您必须指定 -d, -i, -t, --service
使用“svnserve --help”得到用法。

则说明SVN服务端面已经安装安毕!!


2.创建服务端(开启目录服务)

创建一个根目录,这个根目录用来存储所有的svn的工厂信息(每一个工厂等于一个项目)

启动svn-->svnserve -d -r 工厂路径

例如:svnserve -d -r "d:\svn"


3.开机启动

对于Linux而言,直接后台启动即可
对于window而言,后台启动无用,所以需要将其添加到window的服务中

sc create SVNServer binPath="svn服务端路径\bin\svnserve --service -r -d 创建服务端路径"

例如:sc create SVNServer binPath= "Subversion\bin\svnserve --service -r D:\svn"

ps:开机自动启动目录项目d:\svn\projectOne


4.配置项目目录

svnadmin create  "d:\svn\projectOne"

进入projectOne目录中可看到conf,db,hooks,locks,format,README等文件,说明已配置成功

其中conf文件放置的是权限配置文件


5.创建真实项目projectOne


右键import至工厂项目目录中去

--------------------------------------------------------------------------

Import D:\projectOne to svn://localhost/projectOne
认证失败

---------------------------------------------------------------------------

出现以上错误 说明得放置匿名权限访问

进入conf文件,打开svnserve.conf 修改此列

# anon-access = read
# auth-access = write

改为

anon-access = write          (前面不能有空格)
# auth-access = write

重新import--OK

--------------------------------------------------------------------------

Import D:\projectOne to svn://localhost/projectOne
D:\projectOne\css
D:\projectOne\css\1.css
D:\projectOne\js
D:\projectOne\js\1.js
D:\projectOne\jsp
D:\projectOne\jsp\1.jsp
D:\projectOne\test
D:\projectOne\test\1.java
At revision: 1

--------------------------------------------------------------------------


6.开发流程

  • checkout
  • 开发完成之后-->commit
  • 其他开发人员可以通过-->update更新svn仓库中的信息

假如有四个开发人员

css目录为css_t1

js目录为js_t1

jsp目录为jsp_t1

test目录为test_t1


以下以css_t1程序员为例

1.在本地计算机新建文件夹projectOne_css_t1,再右键checkout

URL of repository:svn://localhost/projectOne

Checkout directory:本地计算机目录文件夹

---------------------------------------------------------------------------

Checkout from svn://localhost/projectOne, revision HEAD, Fully recursive, Externals included
D:\projectOne_css
D:\projectOne_css\css
D:\projectOne_css\css\1.css
D:\projectOne_css\js
D:\projectOne_css\js\1.js
D:\projectOne_css\jsp
D:\projectOne_css\jsp\1.jsp
D:\projectOne_css\test
D:\projectOne_css\test\1.java
At revision: 1

---------------------------------------------------------------------------

checkout成功!!!


7.冲突问题

两个开发人员共同修改了一个文件之后并且提交就会产生冲突
1、修改代码之前先进行更新
2、项目经理分配任务的时候需要独立的来考虑(为不同的开发人员分配不同的模块进行开发,这样尽可能的避免冲突)


8.权限控制

----开启权限 svnserver.conf

---------------------------------------------------------------------------

anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz

-------------------------------------------------------------------------------

-----配置开发人员 passwd

-------------------------------------------------------------------------------
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123
css_t1 = 123
js_t1 = 123
jsp_t1 = 123
test_t1 = 123

--------------------------------------------------------------------------------

-----根据人员配置权限authz

--------------------------------------------------------------------------------

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

g_admin = admin
g_css = css_t1
g_js = js_t1
g_jsp = jsp_t1
g_test = test_t1

[/]
@g_admin = rw
* = r

[/css]
@g_css = rw

[/js]
@g_js = rw

[/jsp]
@g_jsp = rw

[/test]
@g_test = rw



# [/foo/bar]
# harry = rw
# &joe = r

----------------------------------------------------------------------------------







0 0
原创粉丝点击