svn

一、环境

1、操作系统:Windows XP

2、JDK:JDK 1.6.0

二、下载和安装

相关软件已经相应的网址:

软件

网址

备注

apache_2.2.14-win32-x86-openssl-0.9.8k.msi

http://archive.apache.org/dist/httpd/binaries/win32/

HTTP服务器软件

Setup-Subversion-1.6.6.msi

http://subversion.tigris.org/servlets/ProjectDocumentList?

folderID=11151&expandFolder=11151&folderID=74

SVN服务器

TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi

http://www.duduwolf.com/post/setting_up_subversion.asp

SVN客户端

三、Apache 2.2.14 安装

1、双击apache_2.2.14-win32-x86-openssl-0.9.8k.msi进行安装,在遇到下面对话框中输入内容:image

2、一直按下一步,直到安装完成

3、有可能无法直接启动httpd服务(通常是因为80端口被其它应用程序占用了)。这时,请不要担心,导航到apache的安装路径,这里使用的是一个默认的安装路径:C:/Program Files/Apache Software Foundation/Apache2.2/conf配置文件:httpd.conf。

ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"

#

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, instead of the default. See also the <VirtualHost>

# directive.

#

# Change this to Listen on specific IP addresses as shown below to

# prevent Apache from glomming onto all bound IP addresses.

#

#Listen 12.34.56.78:80

Listen 8888

#

# Dynamic Shared Object (DSO) Support

#

# To be able to use the functionality of a module which was built as a DSO you

# have to place corresponding `LoadModule' lines at this location so the

# directives contained in it are actually available _before_ they are used.

# Statically compiled modules (those listed by `httpd -l') do not need

4、Apache默认的监听商品是80端口,这里我把它改为8888。然后手动启动httpd服务:我的电脑 -> 控制面板 -> 管理工具 -> 服务。

image

5、现在你可以在你的浏览器中键入 http://localhost/,如果呈现了如下图片,那么你的Apache就安装成功了。

image

四、Subversion安装

1、双击SVN安装文件:Setup-Subversion-1.6.6.msi,一步步确认及可安装成功。

2、添加环境变量:右击我的电脑-> 属性 -> 高级 -> 环境变量 -> 系统变量 -> 变量Path C:/Program Files/Subversion/bin和C:/Program Files/Apache Software Foundation/Apache2.2/bin,变量间用英文分号“;”

image

3、重启电脑。卸载重新安装一定要删除原来的安装目录。

五、SVN的配置和应用

1. 从SVN的bin目录复制两个SVN模块(mod_authz_svn.so, mod_dav_svn.so)到Apache的modules目录。

SVN bin 目录:

C:/Program Files/Subversion/bin

Apache modules 目录:

C:/Program Files/Apache Software Foundation/Apache2.2/modules

2. 修改Apache的配置文件:httpd.conf(C:/Program Files/Apache Software Foundation/Apache2.2/conf)。

注意加粗字体部分,最后的Location部分添加到最后。

# Dynamic Shared Object (DSO) Support

#

# To be able to use the functionality of a module which was built as a DSO you

# have to place corresponding `LoadModule' lines at this location so the

# directives contained in it are actually available _before_ they are used.

# Statically compiled modules (those listed by `httpd -l') do not need

# to be loaded here.

#

# Example:

# LoadModule foo_module modules/mod_foo.so

#

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule asis_module modules/mod_asis.so

LoadModule auth_basic_module modules/mod_auth_basic.so

#LoadModule auth_digest_module modules/mod_auth_digest.so

#LoadModule authn_alias_module modules/mod_authn_alias.so

#LoadModule authn_anon_module modules/mod_authn_anon.so

#LoadModule authn_dbd_module modules/mod_authn_dbd.so

#LoadModule authn_dbm_module modules/mod_authn_dbm.so

LoadModule authn_default_module modules/mod_authn_default.so

LoadModule authn_file_module modules/mod_authn_file.so

#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

#LoadModule authz_dbm_module modules/mod_authz_dbm.so

LoadModule authz_default_module modules/mod_authz_default.so

LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

LoadModule authz_host_module modules/mod_authz_host.so

#LoadModule authz_owner_module modules/mod_authz_owner.so

LoadModule authz_user_module modules/mod_authz_user.so

LoadModule autoindex_module modules/mod_autoindex.so

#LoadModule cache_module modules/mod_cache.so

#LoadModule cern_meta_module modules/mod_cern_meta.so

LoadModule cgi_module modules/mod_cgi.so

#LoadModule charset_lite_module modules/mod_charset_lite.so

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

#LoadModule dav_lock_module modules/mod_dav_lock.so

#LoadModule dbd_module modules/mod_dbd.so

#LoadModule deflate_module modules/mod_deflate.so

LoadModule dir_module modules/mod_dir.so

#LoadModule disk_cache_module modules/mod_disk_cache.so

#LoadModule dumpio_module modules/mod_dumpio.so

LoadModule env_module modules/mod_env.so

#LoadModule expires_module modules/mod_expires.so

#LoadModule ext_filter_module modules/mod_ext_filter.so

#LoadModule file_cache_module modules/mod_file_cache.so

#LoadModule filter_module modules/mod_filter.so

#LoadModule headers_module modules/mod_headers.so

#LoadModule ident_module modules/mod_ident.so

#LoadModule imagemap_module modules/mod_imagemap.so

LoadModule include_module modules/mod_include.so

#LoadModule info_module modules/mod_info.so

LoadModule isapi_module modules/mod_isapi.so

#LoadModule ldap_module modules/mod_ldap.so

#LoadModule logio_module modules/mod_logio.so

LoadModule log_config_module modules/mod_log_config.so

#LoadModule log_forensic_module modules/mod_log_forensic.so

#LoadModule mem_cache_module modules/mod_mem_cache.so

LoadModule mime_module modules/mod_mime.so

#LoadModule mime_magic_module modules/mod_mime_magic.so

LoadModule negotiation_module modules/mod_negotiation.so

#LoadModule proxy_module modules/mod_proxy.so

#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

#LoadModule proxy_connect_module modules/mod_proxy_connect.so

#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

#LoadModule proxy_http_module modules/mod_proxy_http.so

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule setenvif_module modules/mod_setenvif.so

#LoadModule speling_module modules/mod_speling.so

#LoadModule ssl_module modules/mod_ssl.so

#LoadModule status_module modules/mod_status.so

#LoadModule substitute_module modules/mod_substitute.so

#LoadModule unique_id_module modules/mod_unique_id.so

#LoadModule userdir_module modules/mod_userdir.so

#LoadModule usertrack_module modules/mod_usertrack.so

#LoadModule version_module modules/mod_version.so

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

<IfModule !mpm_netware_module>

<IfModule !mpm_winnt_module>

<Location /svn/>

Dav svn

SVNParentPath "E:/svn/repository"

AuthType Basic

AuthName "ICIL SVN"

SVNListParentPath on

AuthUserFile "E:/svn/userfile.txt"

AuthzSVNAccessFile "E:/svn/accessfile.txt"

Require valid-user

</Location>

RedirectMatch ^(/svn)$ $1/

注释:

SVNParentPath--SVN的库根目录(手动创建)路径,可以在这下面创建多个版本库;

AuthUserFile--------用户帐号信息文件(用htpasswd命令创建文件userfile.txt);

AuthzSVNAccessFile--权限控制文件(手动创建);

RedirectMatch ^(/svn)$ $1/-----------重定向路径(/svn定向到/svn/),这样访问库列表可以通过http://ip:port/svn访问。

3. 创建SVN版本库。用svnadmin命令创建库。按下图操作你会发现在E:/svn/repository多了一个MyProject文件夹。

clip_image002

注意:你首先要导航到SVNParentPath: E:/svn/repository然后运行该命令。

4. 创建SVN用户帐号文件。在Apache的配置文件里我们设了AuthUserFile 路径: C:/svn/userfile.txt,现在在DOS命令行里导航到文件夹:E:/svn/运行命令:htpasswd –c userfile.txt username创建用户帐号文件,同时创建了一个初始帐号。

注意:-c参数表示创建一个用户帐号文件,下一次你再创建其它的帐号的时候就不需要这个参数了。

clip_image004

5. 创建权限控制文件。

在配置文件里我们设了AuthzSVNAccessFile 路径:C:/svn/accessfile.txt,现在我们手动创建这个文本文件,同时输入如下内容:

[/]

*=rw

[test:/]

admin=rw

huahua=rw

clip_image006

6、最后重启apache服务。

然后在浏览器里试着访问一下SVN版本库:http://localhost:8888/svn/Project。如果你看到如下图的内容说明你成功了!

clip_image008

clip_image010

六、客户端TortoiseSVN-1.6安装

1、双击TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi,点击下一步直到安装完成为止。

image

2、如果右击一个文件夹出现如下红框结果,即为安装成功。

image

七、SVN应用

1、把源代码导入到svn服务器:

A、右击工程,点击如下红框导入部分。

image

B、“Import”显示为:

image

C、输入上传的地址http://ip:port/自定义路径,OK,如下

image

D、输入之前配置的权限文件的帐号和密码,确定之后如下图:

image 

2、把源代码从svn服务器导出到本地:

A、找一空白区域,右击鼠标,出现如下图:

image

B、点击”Export”,得到:

image

C、点击”OK”,得到如下图,并输入帐号和密码:

image

image

八、通过客户端浏览器查看SVN

导入的源代码是加密的,需要通过svn客户端浏览器才可以看到以及进行其他操作。右击鼠标,得到如下图:

image 

image

image

image

九、总结一下

1、SVN是目前比较流行的开源的版本管理工具,值得尝试配置

2、上面的内容讲述的配置服务端和客户端两个部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。下面举例说明:   开始新一天的工作:   1:从服务器下载项目组最新代码。   2:进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了那些代码,就需要这样做了)。   3:下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。   这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。   缺点:   1、 服务器压力太大,数据库容量暴增。   2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,   就不能提交,还原,对比等等。   3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。   优点:   1、 管理方便,逻辑明确,符合一般人思维习惯。   2、 易于管理,集中式服务器更能保证安全性。   3、 代码一致性非常高。   4、 适合开发人数不多的项目开发。   5、大部分软件配置管理的大学教材都是使用svn和vss。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值