`
komei
  • 浏览: 90765 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SVN

阅读更多

sudo apt-get install subversion libapache2-svn

sudo svnadmin create /svn

 

$ sudo chown -R root:subversion svn

$ sudo chmod -R g+rws svn

 

 

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf
# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
#
# NOTE: for a setup with multiple vhosts, you will want to do this
# configuration in /etc/apache2/sites-available/*, not here.

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
# Note, a literal /svn should NOT exist in your document root.
  <Location /svn>

  # Uncomment this to enable the repository
  DAV svn

  # Set this to the path to your repository
  SVNParentPath /svn
  # Alternatively, use SVNParentPath if you have multiple repositories under
  # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
  # You need either SVNPath and SVNParentPath, but not both.
  #SVNParentPath /svn

  # Access control is done at 3 levels: (1) Apache authentication, via
  # any of several methods.  A "Basic Auth" section is commented out
  # below.  (2) Apache <Limit> and <LimitExcept>, also commented out
  # below.  (3) mod_authz_svn is a svn-specific authorization module
  # which offers fine-grained read/write access control for paths
  # within a repository.  (The first two layers are coarse-grained; you
  # can only enable/disable access to an entire repository.)  Note that
  # mod_authz_svn is noticeably slower than the other two layers, so if
  # you don't need the fine-grained control, don't configure it.

  # Basic Authentication is repository-wide.  It is not secure unless
  # you are using https.  See the 'htpasswd' command to create and
  # manage the password file - and the documentation for the
  # 'auth_basic' and 'authn_file' modules, which you will need for this
  # (enable them with 'a2enmod').
   AuthType Basic
    AuthName "Subversion Repository"
    #AuthUserFile /etc/apache2/dav_svn.passwd
    AuthUserFile /svn/svn1/conf/passwd
  # To enable authorization via mod_authz_svn
  # AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  #  AuthzSVNAccessFile /svn/svn1/conf/authz


  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>

</Location>

 

The DAV line needs to be uncommented to enable the dav module

# Uncomment this to enable the repository,
DAV svn

The SVNPath line should be set to the same place your created the repository with the svnadmin command.

# Set this to the path to your repository
SVNPath /svn

The next section will let you turn on authentication. This is just basic authentication, so don't consider it extremely secure. The password file will be located where the AuthUserFile setting sets it to…  probably best to leave it at the default.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd

To create a user on the repository use, the following command:

sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd geek
New password:
Re-type new password:
Adding password for user geek

This installs the apache2-mpm-worker package, which is now preferred over the older apache2-mpm-prefork
apt-get install apache2 apache2-doc file lynx

sudo /etc/init.d/apache2 restart

svn co
svn ci

svn update

If you want to add new files to the repository::

svn add [filename]

To get a status of which files have changed::

svn stat
SubVersion for local repositories




Ubuntu feisty中的apache2安装包有BUG,安装后缺少apache2-ssl-certificate命令,这样如果我们要启用apache的ssl服务,就生成不了站点证书
可以通过自己编译apache2源码来安装,安装方法如下:
wget http://librarian.launchpad.net/6917265/files.tar
tar xvf files.tar

然后安装Apache2 deb源代码及相关编译依赖包,然后编译安装apache2:

sudo apt-get build-dep apache2
sudo apt-get source -d apache2
dpkg-source -x apache2_2.2.3-3.2build1.dsc
cd apache2-2.2.3
fakeroot debian/rules binary(如果没有安装fakeroot,请先安装)
sudo dpkg -i ../*.deb(您也可以选择性的安装您需要的Apache2 deb包)

如果您不愿自己编译,可以到这里下载编译好的Apache2 Deb包。

这样安装的apache2包含完整的工具,下面我们来配置Apache2 ssl支持:

先生成站点证书:

sudo apache2-ssl-certificate -days 365

接着启用Apache2 的ssl模块:

sudo a2enmod ssl

增加ssl端口443监听:

echo "Listen 443" | sudo tee -a /etc/apache2/ports.conf

创建并启用ssl站点:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
sudo gedit /etc/apache2/sites-available/ssl

修改其内容,设定对应端口,启用ssl,指定站点证书文件位置等,修改后类似如下:

NameVirtualHost *:443
 *:443>
        ServerAdmin webmaster@localhost
 
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/apache.pem
 
        DocumentRoot /var/www/
         />
                Options FollowSymLinks
                AllowOverride None
        >
 
         /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                # Commented out for Ubuntu
                #RedirectMatch ^/$ /apache2-default/
        >
 
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
         "/usr/lib/cgi-bin">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        >
 
        ErrorLog /var/log/apache2/error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
 
    Alias /doc/ "/usr/share/doc/"
     "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    >
 
>

修改default站点配置,指定其端口为80:

sudo gedit /etc/apache2/sites-available/default

将其内容前面两行修改为:

NameVirtualHost *:80
80>

然后启用上面配置的ssl站点:

sudo a2ensite ssl

启动Apache2:

sudo /etc/init.d/apache2 start

大功告成,现在您可以使用https://127.0.0.1测试服务是否正常启动,也可以使用以下命令查看apache ssl服务是否启动:

netstat -na|grep :443

正常的话您应该可以看到如下的输入:

tcp6       0      0 :::443                  :::*                    LISTEN
建立控制用户访问权限的文件svn-access-filename
 [svn1:/]               //这表示,仓库svn1的根目录下的访问权限
 harry = rw             // svn1仓库harry用户具有读和写权限
 sally = r               // svn1仓库sally用户具有读权限
 [svn2:/]               //svn2仓库根目录下的访问权限
 harry = r               // harry用户在svn2仓库根目录下只有读权限
 sally =               // sally用户在 svn2仓库根目录下无任何权限
 [svn2:/src]           //svn2仓库下src目录的访问权限
 harry=rw            
 sally=r
 [/]                  // 这个表示在所有仓库的根目录下
 * = r               // 这个表示对所有的用户都具有读权限
 [groups]               // 这个表示群组设置
 svn1-developers = harry, sally           // 这个表示某群组里的成员
 svn2-developers = sally
 [svn1:/]           
 @svn1-developers = rw       // 如果在前面加上@符号,则表示这是个群组权限设置
 
然后修改httpd.conf配置:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /svn-auth-filename (保存用户名和密码)
Require valid-user
AuthzSVNAccessFile /svn-access-filename(保存用户访问的权限策略)
</Location>

分享到:
评论
1 楼 komei 2007-10-12  
### This file is an example authorization file for svnserve.

### Its format is identical to that of mod_authz_svn authorization

### files.

### As shown below each section defines authorizations for the path and

### (optional) repository specified by the section name.

### The authorizations follow. An authorization line can refer to a

### single user, to a group of users defined in a special [groups]

### section, or to anyone using the '*' wildcard.  Each definition can

### grant read ('r') access, read-write ('rw') access, or no access

### ('').



[groups]

tech = yapex, rael, kenjo, cludezhu, harry, tatsuya, scotthu, andyyang, joklong, kentzhong, karmaho, terryzhou, rogerwang, tendyhu

admin = yapex, kenjo, terryzhou

opal = rael, terryzhou, tendyhu

dcts = cludezhu, harry, tatsuya, scotthu, rogerwang, andyyang, tendyhu

eai = joklong, kentzhong, karmaho, tonyshen, simmenchen, sookywu, niconi, jimmywang

guests = druid, guest



[/]

@tech = r

@admin = rw



[lapgo:/]

@opal = rw



[opal-sdk:/]

@opal = rw

@guests = r



[opal-sdk-tiger:/]

@opal = rw



[opal-dcms3:/]

@opal = rw

@guests = r



[opal-migration:/]

@opal = rw



[opal-workspace:/]

@opal = rw



[opal-resource:/]

@opal = rw



[opal-todo:/]

@opal = rw



[opal-arena:/]

@opal = rw



[opal-eai4:/]

@opal = rw



[opal-eclipse-plugins:/]

@opal = rw



[oval-framework:/]

@opal = rw



[oval-workflow:/]

@opal = rw



[oval-codeshop:/]

@opal = rw



[maven-hsql-plugin:/]

@opal = rw



[com.oval.research:/]

@opal = rw

@guests = r



[maven-opal-plugin:/]

@opal = rw



[dcts:/]

@dcts = rw

@guests = r



[jfashion:/]

@dcts = rw



[blitz:/]

@dcts = r



[loto:/]

@dcts = r



[eai:/]

@eai = rw

相关推荐

    svn插件myeclipse+svn插件

    【标题】:“svn插件myeclipse+svn插件” 【描述】:“svn 插件 myeclipse 插件文件+安装方法在压缩包内” 本文将深入探讨如何在MyEclipse集成开发环境中安装和使用Subversion(SVN)插件,以便更有效地进行版本...

    svn服务用svnsync命令双机热备

    ### SVN服务用svnsync命令实现双机热备 #### 概述 在软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的工具之一。Subversion(SVN)作为一款广受欢迎的集中式版本控制系统,在企业级项目...

    svn-win32-1.7.2.zip (win32svn) [SVN 绿色版]

    将文件解压缩到 C:\ 下,将解压缩后的 svn-win32-1.7.2 文件夹名改为 svn,然后将 C:\svn\bin 加入到系统的 PATH 环境变量中,即可开始使用。 将 svnserve.exe 设置为系统服务: sc create svn binpath= "C:\svn\...

    RapidSVN:轻量级、可视化SVN客户端RapidSVN-0.13.0.8249-PortableSoft

    RapidSVN是一款轻量级且用户友好的可视化Subversion(SVN)客户端,专为开发者和团队协作设计。Subversion是一种版本控制系统,用于管理软件项目中的文件和目录的更改历史,使得多人协同开发变得更加高效和有序。...

    获取svn最新版本号示例 以及svn常用命令

    在软件开发过程中,版本控制系统是不可或缺的工具,其中Subversion(简称svn)是广泛应用的一种集中式版本控制系统。本文将深入探讨如何获取svn的最新版本号,并介绍一些常用的svn命令。 首先,获取svn的最新版本号...

    VS2022 SVN 插件

    **Visual Studio 2022 SVN 插件详解** 在软件开发过程中,版本控制是至关重要的环节,它帮助团队协作并跟踪代码的变化。Subversion(简称SVN)是一款流行的开源版本控制系统,而AnkhSVN则是一个针对Microsoft ...

    清楚svn目录下生成的.svn文件夹

    在使用Subversion(SVN)版本控制系统管理代码时,`.svn`文件夹是SVN用于存储元数据的地方,包括版本信息、工作副本配置等。这些文件夹对于SVN的正常运行至关重要,但有时它们可能会占用大量的磁盘空间,或者在不...

    VS2019 svn插件

    VS2019 SVN插件是Visual Studio 2019开发者为了集成版本控制系统Subversion(SVN)而设计的一款工具。Subversion是一款开源的版本控制系统,它允许开发者跟踪和管理源代码的变化,便于团队协作和项目管理。VS2019 ...

    svn账号密码找回,本地svn账户查看

    在IT行业中,版本控制系统是开发团队协作的重要工具,其中Subversion(简称svn)是一种广泛应用的集中式版本控制系统。本文将详细讲解如何进行“svn账号密码找回”以及“本地svn账户查看”的操作。 首先,让我们来...

    svn清理sqlite3

    在IT行业中,版本控制系统是开发团队协作的重要工具,Subversion(简称svn)就是其中的一款广泛应用的开源版本控制系统。本文将详细讲解如何解决“svn无法清理、上传、下载”的问题,以及涉及的SQLite3数据库相关...

    如何去掉svn标记

    在软件开发过程中,版本控制系统扮演着至关重要的角色,其中Subversion(简称SVN)作为一款开源的集中式版本控制系统,被广泛应用于项目管理之中。然而,在使用SVN的过程中,用户可能会遇到一个常见的问题:如何去除...

    实例方式讲解svn目录权限设置

    svn目录权限设置详解 随着软件开发的日益复杂,版本控制系统的重要性变得更加明显。Subversion(SVN)是一种流行的版本控制系统,能够帮助开发者 efektively 管理项目的版本变更。但是,SVN的权限设置一直是开发者...

    myeclipse2017SVN插件

    【Myeclipse2017 SVN插件】是一款专为Myeclipse 2017集成开发环境设计的版本控制系统工具,它使得开发者能够在Myeclipse中直接进行SVN(Subversion)的操作,如代码的版本控制、提交、更新、解决冲突等。SVN是分布式...

    svn绿色windows版本,客户端,支持IntelliJ IDEA配置svn客户端环境

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理文件和目录的历史版本,便于团队协作和项目管理。在Windows平台上,有许多SVN客户端可供选择,其中SlikSVN是一款流行的轻量级绿色版本,尤其适合那些希望...

    清理SVN、断开SVN连接,工具

    在IT行业中,版本控制系统是开发团队协作的重要工具之一,Subversion(简称SVN)就是其中广泛应用的一款。SVN能够帮助开发者追踪代码的变化,合并不同人的修改,并管理项目的多个版本。然而,有时候我们可能需要断开...

    centos 7.9服务器 离线 搭建svn服务器

    centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...

    Jenkins SVN Publisher Plugins下载

    Jenkins SVN Publisher Plugin是Jenkins生态系统中的一个重要组件,主要用于自动化构建过程中的版本控制集成。它允许用户在Jenkins持续集成服务器完成构建后,自动将生成的成果物发布到Subversion(SVN)仓库中,...

    取消已设置为SVN的文件夹(清理SVN标志)

    标题 "取消已设置为SVN的文件夹(清理SVN标志)" 涉及的知识点主要集中在版本控制系统Subversion(SVN)的管理和清理上。Subversion是一种广泛使用的集中式版本控制系统,它用于跟踪文件和目录的变更,便于团队协作...

    如何通过公网以http方式访问单位的svn.让svn支持http协议

    在IT行业中,版本控制系统是开发团队协作的重要工具,而Subversion(简称SVN)就是其中的一种。本篇文章将深入探讨如何通过公网以HTTP方式访问单位的SVN服务器,使远程开发者能够便捷地进行代码同步与协作。我们将...

Global site tag (gtag.js) - Google Analytics