SVN使用详解

【SVN】快速入门SVN基础使用 SVN概要 Subversion(SVN) 是一个开源的版本控制系統。 相关文档参考 SVN官网使用教程 下载与安装 参考网址: 阅读详情

SVN使用详解

SVN技术网 www.svn8.com 2008-05-06 09:01:22   来源:   作者:   评论:3 条 点击: 6549
安装 Apache
安装 Apache 的先决条件是有一台安装了 Windows 2000,Windows XP SP1+,Windows 2003,Vista 或 Windows Server 2008 的计算机。
警告

请注意,Windows XP 如果没有安装 SP1 将会导致不正常的网络传输,从而搞坏你的版本库!

1.

从 http://httpd.apache.org/download.cgi 下载最新版本的 Apache,请确认你下载的版本是 2.2.x - 1.3.xx 的版本不能工作!

The msi installer for Apache can be found by clicking on other files, then browse to binaries/win32. You may want to choose the msi file apache-2.2.x-win32-x86-openssl-0.9.x.msi (the one that includes OpenSSL).
2.

一旦你有了 Apache2 安装程序,你可以双击它,然后它会指导你的安装过程。请确认你输入的服务器 URL 正确(如果你的服务器没有 DNS 名称,请直接输入 IP 地址)。我建议为所有用户在 80 端口安装 Apache 服务。注意: 如果你已经有了 IIS 或其他监听 80 端口的程序,安装会失败。如果发生这种情况,直接到程序的安装目录 /Apache Group/Apache2/conf,打开 httpd.conf。编辑文件的 Listen 80 为其他可用的端口,例如 Listen 81,然后重新启动 - 这样就不会那个问题了。
3.

现在可以测试 Apache 服务器是否正确运行,将浏览器指向 http://localhost/ - 将会看到一个预先配置的网站。

小心

如果你决定将Apache安装为服务,缺省情况以本地系统帐户运行会发出警告,更安全的方法是为Apache创建一个单独的运行帐户。

请确认Apache运行的帐户是版本库目录的访问控制列表(右键目录|属性|安全)中一个明确的条目,对目录有完全的控制能力,否则,用户不能提交他们的修改。

即使Apache运行于本地系统,你仍然需要这个条目(这种情况下将是SYSTEM帐户)。

如果没有配置 Apache 的此访问权限,你的用户会得到“拒绝访问(Access denied)”的错误信息,在 Apache 的错误日志中的错误代码是 500。
安装 Subversion

1.

Download the latest version of the Subversion Win32 binaries for Apache. Be sure to get the right version to integrate with your version of Apache, otherwise you will get an obscure error message when you try to restart. If you have Apache 2.2.x go to http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100.
2.

运行Subversion安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。
3.

使用Windwos资源管理器,来到Subversion的安装目录(通常是c:/program files/Subversion),找到文件/httpd/mod_dav_svn.so和mod_authz_svn.so,复制这些文件到Apache的模块目录(通常是c:/program files/apache group/apache2/modules )。
4.

从 Subversion 安装目录将 /bin/libdb*.dll 和 /bin/intl3_svn.dll 复制到 Apache 的 bin 目录。
5.

使用记事本之类的文本编辑器修改Apache的配置文件(通常是 C:/Program Files/Apache Group/Apache2/conf/httpd.conf),做出如下修改:

去掉以下几行的注释(删除 '#'标记):

#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

将以下两行到 LoadModule 节的末尾。

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

配置

现在你已经配置了 Apache 和 Subversion,但是 Apache 不知道如何处理 Subversion 客户端,例如TortoiseSVN。为了让 Apache 知道哪个 URL 是用作 Subversion 版本库,你需要使用任意文本编辑器(例如记事本)编辑 Apache 的配置文件(通常是 c:/program files/apache group/apache2/conf/httpd.conf):

1.

在配置文件最后添加如下几行:

<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:/SVN
#SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>

这个配置告诉 Apache 你所有的 Subversion 版本库位于 D:/SVN。这些版本库对外的 URL 是: http://MyServer/svn/。访问被文件 passwd 中的用户/密码限制。
2.

为了创建 passwd 文件,再次打开命令行提示符(DOS 窗口),进入 apache2 目录(通常是 c:/program files/apache group/apache2),通过输入下面的命令创建文件

bin/htpasswd -c passwd <username>

它将会创建名为 passwd 的文件用于认证。用下面的命令增加其它用户

bin/htpasswd passwd <username>

3.

再次重启Apache服务。
4.

将浏览器指向http://MyServer/svn/MyNewRepository(MyNewRepository是你此前创建的版本库名),如果一切正常,你会被提示输入用户名和密码,然后你会看到版本库的内容。

你刚才输入的简短解释是:

表 3.1. 设置 Apache 的 httpd.conf
设置 解释
<Location /svn> 意思是Subversion版本库的URL是http://MyServer/svn/
DAV svn 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。
SVNListParentPath on 对于 Subversion 1.3 或者更高版本,这个指示会列出所有 SVNParentPath 中的版本库。
SVNParentPath D:/SVN 告诉Subversion需要查看的版本库位于D:/SVN之下
SVNIndexXSLT "/svnindex.xsl" 使用它可以在用浏览器浏览时更好看。
AuthType Basic 激活基本认证,就是用户名/密码
AuthName "Subversion repositories" 用来说明何时弹出要求用户输入认证信息的认证对话框
AuthUserFile passwd 指定使用的认证密码文件
AuthzSVNAccessFile 位置Subversion版本库的访问控制文件的路径
Require valid-user 指定只有输入了正确的用户/密码的用户可以访问URL

但是那只是一个例子。对于 Apache 你有很多可能的选择。

*

如果你希望所有人可以读你的版本库,但是只有特定用户可以写,你可以修改下面几行

Require valid-user

to

<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>

*

使用 passwd 可以整体的控制对版本库的访问,但是如果你希望精确的控制版本库目录访问,你可以去掉下行的注释

#AuthzSVNAccessFile svnaccessfile

,并且创建 Subversion 的访问控制文件。Apache 将会确保只有有效的用户可以访问你的 /svn 目录,然后将用户名传递给 Subversion 的 AuthzSVNAccessFile 模块,这样就可以根据 Subversion 访问控制文件内的规则实现更细粒度的访问控制。请注意路径可以是 repos:path 或简单的 path,如果你不指定特定的版本库,访问控制规则会应用到 SVNParentPath 下所有的版本库。使用的授权策略文件的格式在“路径为基础的授权”一节描述。
*

如果要使浏览器浏览仓库时更“漂亮”,请将去掉下行注释

#SVNIndexXSLT "/svnindex.xsl"

,将文件 svnindex.xsl, svnindex.css 和 menucheckout.ico 放到你的文档根目录中(通常是 C:/Program Files/Apache Group/Apache2/htdocs)。 这个目录在 Apache 配置文件中用 DocumentRoot 指示设置。

你可以直接在我们的代码库http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/other/svnindex中拿到这三个文件。如果访问这个链接需要认证,输入用户名称 guest,无需密码。

TortoiseSVN 版本库中的 XSL 文件有个特性:如果你用浏览器浏览版本库,那么每个版本库中的目录右边会有个图标。如果你点击此图标,那么 TortoiseSVN 会为此 URL 启动检出对话框。

多版本库

如果你使用 SVNParentPath 指示,你就不必在每次添加新 Subversion 版本库时修改 Apache 的配置文件,只需要在第一个版本库所在的位置建立新的版本库就可以了。在我的公司,我可以使用 SMB(普通的 windows 文件访问)直接访问服务器的文件夹,所以我直接在那里创建一个目录,运行 TortoiseSVN 命令TortoiseSVN → 在此创建版本库...,然后一个新的项目建立了...

如果你使用 Subversion 1.3 或更高版本,可以使用 SVNListParentPath on 指示,这样当你使用浏览器访问父路径而不是具体某个版本库时 Apache 就会显示所有版本库列表。
路径为基础的授权

mod_authz_svn 模块可以根据用户名和路径实现细粒度的权限控制,它对 Apache 服务器有效,在 Subversion 1.3 以上版本的 svnserve 中也实现了基于路径的授权。

一个可能的例子:

[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw
# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw

请注意,检查每一条路径是一件消耗极大的操作,特别是修订版本日志,服务器会检查在每一个修订版本的每一条路径是否可读,对于影响很多文件的修订将会花费很多时间。

认证和授权是不同的处理过程,如果用户希望获得对版本库的访问,他需要通过全部检查,即通常的认证需求和访问控制文件的授权需求。
使用 Windows 域认证

你已经注意到了,你需要为每个用户在passwd文件中创建用户名/密码条目,如果(因为安全原因)他们希望周期性的修改他们的密码,你需要手动的做出修改。

但是对于此问题有另一个解决方案 - 至少是你在使用域控制器的 LAN 中访问版本库时: mod_auth_sspi!

最初的 SSPI 是由 Syneapps 提供的,包括源代码。但是它的开发已经终止。不过不要失望,社区重新拾起代码并进行了改进,它现在的新主页在SourceForge。

*

下载此匹配你的 Apache 版本的模块,将文件mod_auth_sspi.so复制到 Apache 的 modules 目录。
*

编辑 Apache 的配置文件: 增加一行

LoadModule sspi_auth_module modules/mod_auth_sspi.so

到 LoadModule 节。确认你在下行之前插入此行

LoadModule auth_module modules/mod_auth.so

*

为了让 Subversion 领域使用此认证类型,你需要将

AuthType Basic

修改为

AuthType SSPI

并且在 <Location /svn> 中增加

SSPIAuth On
SSPIAuthoritative On
SSPIDomain <domaincontroller>
SSPIOmitDomain on
SSPIUsernameCase lower
SSPIPerRequestAuth on
SSPIOfferBasic On

如果你没有域控制器,可以将域控制器的名称置为 <domaincontroller> 。

请注意,当你使用 SSPI 认证时,没有必要再使用 AuthUserFile 行定义密码文件,Apache 使用 Windows 域验证你的用户名和密码,你需要更新 svnaccessfile 中的用户列表来引用 DOMAIN/username。
重要

The SSPI authentication is only enabled for SSL secured connections (https). If you're only using normal http connections to your server, it won't work.

To enable SSL on your server, see the chapter: “用 SSL 使服务器更安全”一节
提示

Subversion 的 AuthzSVNAccessFile 文件对用户名大小写敏感(JUser 与 juser 不同)。

在微软的世界,Windows 域和用户名不是大小写敏感。即使如此,一些网络管理员还是喜欢创建首字母大写的用户帐号(例如 JUser)。

使用SSPI的一个问题是用户名和密码是用户在提示输入时发送到Subversion的,而IE经常会不管你的帐户是如何建立的都会自动发送你的用户名。

结果就是你必须为每个用户在 AuthzSVNAccessFile 中至少创建两个条目:一个小写的条目和一个与 IE 传递给 Apache 一样的条目,你也需要训练你的用户在通过 TortoiseSVN 输入访问版本库的凭证时使用小写字母。

Apache 的错误和访问日志是你最好的朋友,例如帮助你检测传递给 Subversion 的 AuthzSVNAccessFile 模块的用户名,你或许需要试验 svnaccessfile 中用户字符串的精确格式(例如 DOMAIN/user 还是 DOMAIN//user)来使一切工作正常。
多重认证源

也可以为Subversion使用不止一个的认证源,为此,你需要将每一种认证设置为non-authoritative,这样Apache会在多个源检查用户名/密码。

一个常见的场景就是同时使用Windows域和passwd文件认证,这样你可以为没有Windows域帐户的用户提供访问SVN的权限。

*

为了同时启用 Windows 域认证和 passwd 文件认证,在 Apache 配置文件的 <Location> 块中添加如下条目:

AuthAuthoritative Off
SSPIAuthoritative Off

下面是组合使用 Windows 域认证和 passwd 文件认证的完整配置:

<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:/SVN

AuthName "Subversion repositories"
AuthzSVNAccessFile svnaccessfile.txt

# NT Domain Logins.
AuthType SSPI
SSPIAuth On
SSPIAuthoritative Off
SSPIDomain <domaincontroller>
SSPIOfferBasic On

# Htpasswd Logins.
AuthType Basic
AuthAuthoritative Off
AuthUserFile passwd

Require valid-user
</Location>

用 SSL 使服务器更安全

Even though Apache 2.2.x has OpenSSL support, it is not activated by default. You need to activate this manually.

1.

In the apache config file, uncomment the lines:

#LoadModule ssl_module modules/mod_ssl.so

and at the bottom

#Include conf/extra/httpd-ssl.conf

then change the line

SSLMutex "file:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_mutex"

to

SSLMutex default

2.

然后你需要创建一个 SSL 证书。为此打开一个命令行窗口,进入 Apache 目录(例如 C:/program files/apache group/apache2),然后输入命令:

bin/openssl req -config bin/openssl.cnf -new -out my-server.csr

你会被询问密句。请不要使用简单的单词,而是使用整段话,例如一段诗,越长越好。你也需要输入服务器的 URL,其他所有问题都是可选的,但是我们建议你输入这些信息。

Normally the privkey.pem file is created automatically, but if it isn't you need to type this command to generate it:

bin/openssl genrsa -out conf/privkey.pem 2048

Next type the commands

bin/openssl rsa -in conf/privkey.pem -out conf/server.key

and

bin/openssl req -new -key conf/server.key -out conf/server.csr -config conf/openssl.cnf

and then (on one line)

bin/openssl x509 -in conf/server.csr -out conf/server.crt
-req -signkey conf/server.key -days 4000

This will create a certificate which will expire in 4000 days. And finally enter:

bin/openssl x509 -in conf/server.cert -out conf/server.der.crt -outform DER

These commands created some files in the Apache conf folder (server.der.crt, server.csr, server.key, .rnd, privkey.pem, server.cert).
3.

重启 apache 服务。
4.

将你的浏览器指向https://servername/svn/project ...

SSL 和 Internet Explorer

如果你使用SSL保护你的服务器,并使用windows域来进行认证,你会发现不能使用IE浏览版本库了,不需要担心-那只是因为IE没有经过认证,其他浏览器没有这个问题,TortoiseSVN和其他Subversion客户端仍然可以得到认证。

如果你一直希望使用IE浏览你的版本库,你可以选择:

*

在 Apache 的配置文件定义一个单独的 <Location /path> 指示,增加 SSPIBasicPreferred On。这将使 IE 能够认证,但是其他浏览器和 Subversion 不能对这个领域认证。
*

也提供未加密(没有SSL)认证的浏览,奇怪的IE在没有使用SSL的认证时没有任何问题。
*

在 SSL 的“标准”配置中,通常在 apache 的虚拟 SSL 主机内有下面的内容:

SetEnvIf User-Agent ".*MSIE.*" /
nokeepalive ssl-unclean-shutdown /
downgrade-1.0 force-response-1.0

这种设置的充足理由参见 http://www.modssl.org/docs/2.8/ssl_faq.html#ToC49。但是如果你希望使用 NTLM 认证,就必须使用 keepalive。如果启用全部 SetEnvIf,你就可以使 IE 用 Windows 认证访问运行在 Win32 上加载了 mod_auth_sspi 模块的 Apache。

强制 SSL 访问

当你设置了 SSL 让你的版本库更安全,你一定希望关闭普通的非 SSL (http) 访问。为此,你需要在 Subversion 的 <Location> 增加指示: SSLRequireSSL。

这是一个 <Location> 实例:

<Location /svn>
DAV svn
SVNParentPath D:/SVN
SSLRequireSSL
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
 
SVN入门第二讲——SVN的简单使用 版本管理工具介绍——SVN篇(一)SVN是何物SVN是Subversion的简称,是一款集中式的开源版本控制系统,因为有着明确的权限管理机制,所以为目前国内绝大多数的公司所使用。 何谓集中式:集中式核心在于中央服务器,开发者需要先从服务器上获取代码,开发,解决冲突,提交,所有版本信息都在服务器上,离开了服务器基本无法工作。为什么要使用SVN?通常软件开发由多人协作开发,如果对代码文件、配置文件、文 阅读详情

相关推荐

svn使用详解

SVN使用手册 一. 如果开发过程中没有SVN? 软件研发过程中,任意一个项目都是由一个团队完成的,而不能依靠单一个体完成。 在团队开发过程中,资料数据的共享与同步将成为开发过程中比较突出的问题。 图一:原始开发管理模式(COPY模式) 缺点: u 代码管理混乱 u 备份多个版本,占用磁盘空间大 u 解决代码冲突困难 u 容易引发BUG u 难于追溯问题代码的修改人和修改时间

cnn0314的博客 3282

svn使用详解1

安装 Apache 安装 Apache 的先决条件是有一台安装了 Windows 2000,Windows XP SP1+,Windows 2003,Vista 或 Windows Server 2008 的计算机。 警告 请注意,Windows XP 如果没有安装 SP1 将会导致不正常的网络传输,从而搞坏你的版本库! 1. 从 http://httpd....

自由人 500

Windows 下搭建 使用SVN,以及在eclipse中配置使用SVN服务

Windows 下搭建 使用SVN,以及在eclipse中配置使用SVN服务 目录 一、安装Visual SVN 二、配置SVN 三、安装TortoiseSVN 四、上传项目到远程仓库 五、从远程仓库下载项目 六、检出项目 七、版本回退 九、在Eclipse中安装插件subclipse 十、上传项目到svn服务器 十一、提交项目 十二、从svn检出项目到eclispe 十...

小渣渣的博客 7984

nginx 禁止svn目录访问的脚本

下面整理了一些关于nginx 禁止svn目录访问的脚本,希望这些脚本对各位学习nginx会带来帮助哦。 nginx location ~ .*.(svn|git|cvs) {     deny all; } apache RewriteEngine On RewriteRule .svn/  /404.html  整理了一些方法供

大爱无疆的博客 2122

svn-1.4.3-setup.exe.7z

安装 Apache 安装 Apache 的先决条件是有一台安装了 Windows 2000,Windows XP SP1+,Windows 2003,Vista 或 Windows Server 2008 的计算机。 警告 请注意,Windows XP 如果没有安装 SP1 将会导致不正常的网络传输,从而搞坏你的版本库! 1. 从 http://httpd.apache.org/download.cgi 下载最新版本的 Apache,请确认你下载的版本是 2.2.x - 1.3.xx 的版本不能工作! The msi installer for Apache can be found by clicking on other files, then browse to binaries/win32. You may want to choose the msi file apache-2.2.x-win32-x86-openssl-0.9.x.msi (the one that includes OpenSSL). 2. 一旦你有了 Apache2 安装程序,你可以双击它,然后它会指导你的安装过程。请确认你输入的服务器 URL 正确(如果你的服务器没有 DNS 名称,请直接输入 IP 地址)。我建议为所有用户在 80 端口安装 Apache 服务。注意: 如果你已经有了 IIS 或其他监听 80 端口的程序,安装会失败。如果发生这种情况,直接到程序的安装目录 \Apache Group\Apache2\conf,打开 httpd.conf。编辑文件的 Listen 80 为其他可用的端口,例如 Listen 81,然后重新启动 - 这样就不会那个问题了。 3. 现在可以测试 Apache 服务器是否正确运行,将浏览器指向 http://localhost/ - 将会看到一个预先配置的网站。 小心 如果你决定将Apache安装为服务,缺省情况以本地系统帐户运行会发出警告,更安全的方法是为Apache创建一个单独的运行帐户。 请确认Apache运行的帐户是版本库目录的访问控制列表(右键目录|属性|安全)中一个明确的条目,对目录有完全的控制能力,否则,用户不能提交他们的修改。 即使Apache运行于本地系统,你仍然需要这个条目(这种情况下将是SYSTEM帐户)。 如果没有配置 Apache 的此访问权限,你的用户会得到“拒绝访问(Access denied)”的错误信息,在 Apache 的错误日志中的错误代码是 500。 安装 Subversion 1. Download the latest version of the Subversion Win32 binaries for Apache. Be sure to get the right version to integrate with your version of Apache, otherwise you will get an obscure error message when you try to restart. If you have Apache 2.2.x go to http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100. 2. 运行Subversion安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。 3. 使用Windwos资源管理器,来到Subversion的安装目录(通常是c:\program files\Subversion),找到文件/httpd/mod_dav_svn.so和mod_authz_svn.so,复制这些文件到Apache的模块目录(通常是c:\program files\apache group\apache2\modules )。 4. 从 Subversion 安装目录将 /bin/libdb*.dll 和 /bin/intl3_svn.dll 复制到 Apache 的 bin 目录。 5. 使用记事本之类的文本编辑器修改Apache的配置文件(通常是 C:\Program Files\Apache Group\Apache2\conf\httpd.conf),做出如下修改: 去掉以下几行的注释(删除 '#'标记): #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mod_dav.so 将以下两行到 LoadModule 节的末尾。 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 配置 现在你已经配置了 Apache 和 Subversion,但是 Apache 不知道如何处理 Subversion 客户端,例如TortoiseSVN。为了让 Apache 知道哪个 URL 是用作 Subversion 版本库,你需要使用任意文本编辑器(例如记事本)编辑 Apache 的配置文件(通常是 c:\program files\apache group\apache2\conf\httpd.conf): 1. 在配置文件最后添加如下几行: <Location /svn> DAV svn SVNListParentPath on SVNParentPath D:\SVN #SVNIndexXSLT "/svnindex.xsl" AuthType Basic AuthName "Subversion repositories" AuthUserFile passwd #AuthzSVNAccessFile svnaccessfile Require valid-user </Location> 这个配置告诉 Apache 你所有的 Subversion 版本库位于 D:\SVN。这些版本库对外的 URL 是: http://MyServer/svn/。访问被文件 passwd 中的用户/密码限制。 2. 为了创建 passwd 文件,再次打开命令行提示符(DOS 窗口),进入 apache2 目录(通常是 c:\program files\apache group\apache2),通过输入下面的命令创建文件 bin\htpasswd -c passwd <username> 它将会创建名为 passwd 的文件用于认证。用下面的命令增加其它用户 bin\htpasswd passwd <username> 3. 再次重启Apache服务。 4. 将浏览器指向http://MyServer/svn/MyNewRepository(MyNewRepository是你此前创建的版本库名),如果一切正常,你会被提示输入用户名和密码,然后你会看到版本库的内容。 你刚才输入的简短解释是: 表 3.1. 设置 Apache 的 httpd.conf 设置 解释 <Location /svn> 意思是Subversion版本库的URL是http://MyServer/svn/ DAV svn 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。 SVNListParentPath on 对于 Subversion 1.3 或者更高版本,这个指示会列出所有 SVNParentPath 中的版本库。 SVNParentPath D:\SVN 告诉Subversion需要查看的版本库位于D:\SVN之下 SVNIndexXSLT "/svnindex.xsl" 使用它可以在用浏览器浏览时更好看。 AuthType Basic 激活基本认证,就是用户名/密码 AuthName "Subversion repositories" 用来说明何时弹出要求用户输入认证信息的认证对话框 AuthUserFile passwd 指定使用的认证密码文件 AuthzSVNAccessFile 位置Subversion版本库的访问控制文件的路径 Require valid-user 指定只有输入了正确的用户/密码的用户可以访问URL 但是那只是一个例子。对于 Apache 你有很多可能的选择。 * 如果你希望所有人可以读你的版本库,但是只有特定用户可以写,你可以修改下面几行 Require valid-user to <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> * 使用 passwd 可以整体的控制对版本库的访问,但是如果你希望精确的控制版本库目录访问,你可以去掉下行的注释 #AuthzSVNAccessFile svnaccessfile ,并且创建 Subversion 的访问控制文件。Apache 将会确保只有有效的用户可以访问你的 /svn 目录,然后将用户名传递给 Subversion 的 AuthzSVNAccessFile 模块,这样就可以根据 Subversion 访问控制文件内的规则实现更细粒度的访问控制。请注意路径可以是 repos:path 或简单的 path,如果你不指定特定的版本库,访问控制规则会应用到 SVNParentPath 下所有的版本库。使用的授权策略文件的格式在“路径为基础的授权”一节描述。 * 如果要使浏览器浏览仓库时更“漂亮”,请将去掉下行注释 #SVNIndexXSLT "/svnindex.xsl" ,将文件 svnindex.xsl, svnindex.css 和 menucheckout.ico 放到你的文档根目录中(通常是 C:/Program Files/Apache Group/Apache2/htdocs)。 这个目录在 Apache 配置文件中用 DocumentRoot 指示设置。 你可以直接在我们的代码库http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/other/svnindex中拿到这三个文件。如果访问这个链接需要认证,输入用户名称 guest,无需密码。 TortoiseSVN 版本库中的 XSL 文件有个特性:如果你用浏览器浏览版本库,那么每个版本库中的目录右边会有个图标。如果你点击此图标,那么 TortoiseSVN 会为此 URL 启动检出对话框。 多版本库 如果你使用 SVNParentPath 指示,你就不必在每次添加新 Subversion 版本库时修改 Apache 的配置文件,只需要在第一个版本库所在的位置建立新的版本库就可以了。在我的公司,我可以使用 SMB(普通的 windows 文件访问)直接访问服务器的文件夹,所以我直接在那里创建一个目录,运行 TortoiseSVN 命令TortoiseSVN → 在此创建版本库...,然后一个新的项目建立了... 如果你使用 Subversion 1.3 或更高版本,可以使用 SVNListParentPath on 指示,这样当你使用浏览器访问父路径而不是具体某个版本库时 Apache 就会显示所有版本库列表。 路径为基础的授权 mod_authz_svn 模块可以根据用户名和路径实现细粒度的权限控制,它对 Apache 服务器有效,在 Subversion 1.3 以上版本的 svnserve 中也实现了基于路径的授权。 一个可能的例子: [groups] admin = john, kate devteam1 = john, rachel, sally devteam2 = kate, peter, mark docs = bob, jane, mike training = zak # Default access rule for ALL repositories # Everyone can read, admins can write, Dan German is excluded. [/] * = r @admin = rw dangerman = # Allow developers complete access to their project repos [proj1:/] @devteam1 = rw [proj2:/] @devteam2 = rw [bigproj:/] @devteam1 = rw @devteam2 = rw trevor = rw # Give the doc people write access to all the docs folders [/trunk/doc] @docs = rw # Give trainees write access in the training repository only [TrainingRepos:/] @training = rw 请注意,检查每一条路径是一件消耗极大的操作,特别是修订版本日志,服务器会检查在每一个修订版本的每一条路径是否可读,对于影响很多文件的修订将会花费很多时间。 认证和授权是不同的处理过程,如果用户希望获得对版本库的访问,他需要通过全部检查,即通常的认证需求和访问控制文件的授权需求。 使用 Windows 域认证 你已经注意到了,你需要为每个用户在passwd文件中创建用户名/密码条目,如果(因为安全原因)他们希望周期性的修改他们的密码,你需要手动的做出修改。 但是对于此问题有另一个解决方案 - 至少是你在使用域控制器的 LAN 中访问版本库时: mod_auth_sspi! 最初的 SSPI 是由 Syneapps 提供的,包括源代码。但是它的开发已经终止。不过不要失望,社区重新拾起代码并进行了改进,它现在的新主页在SourceForge。 * 下载此匹配你的 Apache 版本的模块,将文件mod_auth_sspi.so复制到 Apache 的 modules 目录。 * 编辑 Apache 的配置文件: 增加一行 LoadModule sspi_auth_module modules/mod_auth_sspi.so 到 LoadModule 节。确认你在下行之前插入此行 LoadModule auth_module modules/mod_auth.so * 为了让 Subversion 领域使用此认证类型,你需要将 AuthType Basic 修改为 AuthType SSPI 并且在 <Location /svn> 中增加 SSPIAuth On SSPIAuthoritative On SSPIDomain <domaincontroller> SSPIOmitDomain on SSPIUsernameCase lower SSPIPerRequestAuth on SSPIOfferBasic On 如果你没有域控制器,可以将域控制器的名称置为 <domaincontroller> 。 请注意,当你使用 SSPI 认证时,没有必要再使用 AuthUserFile 行定义密码文件,Apache 使用 Windows 域验证你的用户名和密码,你需要更新 svnaccessfile 中的用户列表来引用 DOMAIN\username。 重要 The SSPI authentication is only enabled for SSL secured connections (https). If you're only using normal http connections to your server, it won't work. To enable SSL on your server, see the chapter: “用 SSL 使服务器更安全”一节 提示 Subversion 的 AuthzSVNAccessFile 文件对用户名大小写敏感(JUser 与 juser 不同)。 在微软的世界,Windows 域和用户名不是大小写敏感。即使如此,一些网络管理员还是喜欢创建首字母大写的用户帐号(例如 JUser)。 使用SSPI的一个问题是用户名和密码是用户在提示输入时发送到Subversion的,而IE经常会不管你的帐户是如何建立的都会自动发送你的用户名。 结果就是你必须为每个用户在 AuthzSVNAccessFile 中至少创建两个条目:一个小写的条目和一个与 IE 传递给 Apache 一样的条目,你也需要训练你的用户在通过 TortoiseSVN 输入访问版本库的凭证时使用小写字母。 Apache 的错误和访问日志是你最好的朋友,例如帮助你检测传递给 Subversion 的 AuthzSVNAccessFile 模块的用户名,你或许需要试验 svnaccessfile 中用户字符串的精确格式(例如 DOMAIN\user 还是 DOMAIN//user)来使一切工作正常。 多重认证源 也可以为Subversion使用不止一个的认证源,为此,你需要将每一种认证设置为non-authoritative,这样Apache会在多个源检查用户名/密码。 一个常见的场景就是同时使用Windows域和passwd文件认证,这样你可以为没有Windows域帐户的用户提供访问SVN的权限。 * 为了同时启用 Windows 域认证和 passwd 文件认证,在 Apache 配置文件的 <Location> 块中添加如下条目: AuthAuthoritative Off SSPIAuthoritative Off 下面是组合使用 Windows 域认证和 passwd 文件认证的完整配置: <Location /svn> DAV svn SVNListParentPath on SVNParentPath D:\SVN AuthName "Subversion repositories" AuthzSVNAccessFile svnaccessfile.txt # NT Domain Logins. AuthType SSPI SSPIAuth On SSPIAuthoritative Off SSPIDomain <domaincontroller> SSPIOfferBasic On # Htpasswd Logins. AuthType Basic AuthAuthoritative Off AuthUserFile passwd Require valid-user </Location> 用 SSL 使服务器更安全 Even though Apache 2.2.x has OpenSSL support, it is not activated by default. You need to activate this manually. 1. In the apache config file, uncomment the lines: #LoadModule ssl_module modules/mod_ssl.so and at the bottom #Include conf/extra/httpd-ssl.conf then change the line SSLMutex "file:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_mutex" to SSLMutex default 2. 然后你需要创建一个 SSL 证书。为此打开一个命令行窗口,进入 Apache 目录(例如 C:\program files\apache group\apache2),然后输入命令: bin\openssl req -config bin\openssl.cnf -new -out my-server.csr 你会被询问密句。请不要使用简单的单词,而是使用整段话,例如一段诗,越长越好。你也需要输入服务器的 URL,其他所有问题都是可选的,但是我们建议你输入这些信息。 Normally the privkey.pem file is created automatically, but if it isn't you need to type this command to generate it: bin\openssl genrsa -out conf\privkey.pem 2048 Next type the commands bin\openssl rsa -in conf\privkey.pem -out conf\server.key and bin\openssl req -new -key conf\server.key -out conf\server.csr -config conf\openssl.cnf and then (on one line) bin\openssl x509 -in conf\server.csr -out conf\server.crt -req -signkey conf\server.key -days 4000 This will create a certificate which will expire in 4000 days. And finally enter: bin\openssl x509 -in conf\server.cert -out conf\server.der.crt -outform DER These commands created some files in the Apache conf folder (server.der.crt, server.csr, server.key, .rnd, privkey.pem, server.cert). 3. 重启 apache 服务。 4. 将你的浏览器指向https://servername/svn/project ... SSL 和 Internet Explorer 如果你使用SSL保护你的服务器,并使用windows域来进行认证,你会发现不能使用IE浏览版本库了,不需要担心-那只是因为IE没有经过认证,其他浏览器没有这个问题,TortoiseSVN和其他Subversion客户端仍然可以得到认证。 如果你一直希望使用IE浏览你的版本库,你可以选择: * 在 Apache 的配置文件定义一个单独的 <Location /path> 指示,增加 SSPIBasicPreferred On。这将使 IE 能够认证,但是其他浏览器和 Subversion 不能对这个领域认证。 * 也提供未加密(没有SSL)认证的浏览,奇怪的IE在没有使用SSL的认证时没有任何问题。 * 在 SSL 的“标准”配置中,通常在 apache 的虚拟 SSL 主机内有下面的内容: SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 这种设置的充足理由参见 http://www.modssl.org/docs/2.8/ssl_faq.html#ToC49。但是如果你希望使用 NTLM 认证,就必须使用 keepalive。如果启用全部 SetEnvIf,你就可以使 IE 用 Windows 认证访问运行在 Win32 上加载了 mod_auth_sspi 模块的 Apache。 强制 SSL 访问 当你设置了 SSL 让你的版本库更安全,你一定希望关闭普通的非 SSL (http) 访问。为此,你需要在 Subversion 的 <Location> 增加指示: SSLRequireSSL。 这是一个 <Location> 实例: <Location /svn> DAV svn SVNParentPath D:\SVN SSLRequireSSL AuthType Basic AuthName "Subversion repositories" AuthUserFile passwd #AuthzSVNAccessFile svnaccessfile Require valid-user </Location>

Subversion Server(1.4.3)安装步骤

详细描述了如何构建一个 Subversion 服务器, 对于协调代码编写很有帮助!

SVN服务器的安装与配置

Apache 的安装:   从 http://httpd.apache.org/download.cgi 下载最新版本的 Apache,请确认你下载的版本是 2.2.x - 1.3.xx 的版本不能工作! 点击 other files,然后浏览 binaries/win32

zzy305的专栏 586

使用扫频信号测量房间脉冲响应

脉冲响应的测量

liuderong0的博客 1764

SVN使用 IDEA集成SVN SVN简介 SVN使用详解 SVN学习之路

文章目录SVN介绍与使用一、SVN引入1. SVM服务器搭建2. 需要了解的关键词3. 如何让系统共享信息,并且不互相干扰。4. SVN架构二、 SVN的操作1. 安装tortoisesSvn2. 初始化拉去仓库3. 提交4. 拉取服务器上最新版本5. 解决冲突三、Idea集成SVN3.1 配置3.2 关联服务器仓库 SVN介绍与使用 一、SVN引入 SVN==Subversion 它是一个自由/开源的集中式版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据

Janyi_的博客 1072

中国裁判文书网案例批量爬取

本文介绍了某法院网站数据采集的技术研究过程,主要包含JS逆向分析和数据解密方法。通过开发者工具分析发现页面数据经过加密处理,重点研究了ciphertext等加密参数的生成逻辑。文章详细记录了定位加密函数、扣取加密代码、解密数据处理的全流程,并验证了解密方法的有效性。研究过程中强调了技术使用的法律边界,明确声明仅用于合法技术研究,禁止任何非法数据爬取行为。最终实现了加密数据的成功解密,并解释了各请求参数的作用,为后续数据清洗和存储奠定了基础。

2303_80825459的博客 812

SUMO从入门到精通:手把手教你用开源工具完成智能网联车仿真(附Python接口教程)

本文提供了一份SUMO开源交通仿真工具的完整实战指南,从环境搭建、基础仿真到Python接口TraCI的深度应用。重点讲解了如何利用SUMO的高度可定制性进行智能网联车仿真,包括实现动态信号优先等核心算法,并介绍了与网络仿真器集成以构建高保真车联网通信环境的方法。

weixin_28327051的博客 536

SVN安装及使用+SVN汉化

目录 第一步下载SVN及SVN汉化包 SVN下载: SVN汉化语言包下载网址: 第二步安装SVN及汉化包 使用说明检出项目 导入项目 关于项目的提交 更新: 解决冲突有三种选择: 如何降低冲突解决的复杂度: 查看日志 版本回滚 版本控制 创建分支合并相互操作 新建分支 合并分支到主干上 合并主干到分支 第一步下载SVN及SVN汉化...

FurtherSkyQ的博客 4万+

EGE基础入门篇(一):绘图基础知识

EGE绘图所需要了解的相关基础知识

依稀_yixy的博客 2万+

svn的使用

嗨喽大家好,我是老黑。工作了一段时间,但是对于svn的使用还是有一些问题,今天就来总结一下平时最常用到的操作。再也不想平时对项目代码管理的时候出现各种各样的问题。 一、前言 首先推荐一个svn最常用的使用平台,SVNBucket.这个的话直接百度就可以了。进入之前先注册一个账号,然后登陆就可以了。里面也有一些SVN的教程。大家可以空余的时间可以进去看看。好了,下面直接进入正题。 二、svn获取远程项目代码。 这是最常用之一,当我们进入一个新的公司,或者获取到一个新的项目的时候,需要获取到项目的代码,然后通

Laohei0101的博客 1万+

react-window 大数据列表和表格数据渲染组件之虚拟滚动

ReactWindow是一个高性能的React虚拟滚动组件库,专门用于高效渲染大型列表和表格数据。它通过“窗口化”技术,仅渲染用户可见区域的内容,大幅提升性能并减少内存消耗。主要特点包括:支持固定/可变大小列表项、多种布局类型(垂直/水平/网格)、轻量级设计(不足5KB)以及平滑的滚动体验。相比传统渲染方式,它能轻松处理成千上万条数据,并提供自动滚动、自适应容器大小等高级功能。与同类库相比,ReactWindow具有更简洁的API和更优的性能表现,是处理大数据量渲染场景的理想选择。

前端开发-前端技术分享 1136

嵌入式系统实战:DroneCAN协议栈移植与避坑指南

本文详细介绍了在嵌入式系统中移植DroneCAN协议栈的完整流程与实战技巧。内容涵盖移植前的准备工作、内存管理优化、CRC校验实现、多帧数据处理及硬件平台适配等关键环节,并以STM32F4为例提供了具体的移植步骤和避坑指南,帮助开发者高效完成DroneCAN在嵌入式设备上的集成与应用。

solidity8miner的博客 547

HBuilder如何配置SVN的步骤详解及HBuilderX SVN使用教程

对于项目较大的公司来说一般都用SVN或新起的Git来协作团队开发,后台开发用的VS基本都集成了SVN的插件。介绍如何配置之前我先说下为什么会选择这款编辑器。对于我来说从DW、 WebStorm 、sublime text一路走来,以及一款叫ATOM(没用过,只是有所了解)的新秀的编辑器。但我倾向一款国内团队打造的编辑器HBuilder。 官网地址:http://www.dcloud.io/ 说说我...

langke0124的博客 2万+

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1032

IDEA集成SVN插件及SVN使用 - 超详细

1 IDEA集成SVN 1.1 下载SVN客户端 这里使用的是TortoiseSVN,下载后安装 ,然后记住安装路径。 官方下载地址:TortoiseSVN官方下载地址 1.2 安装SVN客户端 在安装svn客户端的时候一定要勾选,否则在idea上集成svn的时候会找不到 svn.exe 而报错。 如果安装时忘记勾选了的话,安装包重新运行,选择modify,然后勾选command line cl...

weixin_44248000的博客 1万+

OSCP-1-3-natraj(本地文件包含、日志中毒、apache2配置漏洞、nmap提权)

像往常一样,我们将使用“Netdiscover”工具识别主机的 IP。所以,让我们首先用 nmap 列出所有 TCP 端口。我们从访问web服务(80端口)开始,在那里我们找到了几张关于Natraj的图片和信息,我们将查看源代码和robots.txt,似乎没有什么有用的。(或至少,目前)。因此,让我们继续进行。在 Dirb 及其默认字典的帮助下,我们找到了一个名为“”的目录。我们进入并列出一个名为“”的文件:如果我们执行它,我们会看到它什么也不做。我们可能需要添加其他内容。

墨痕诉清风的博客 528

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Eclipse中使用SVN Eclipse配置SVN

Eclipse集成SVN 文章目录Eclipse集成SVN一、安装SVN二、导入Eclipse中的项目到SVN三、检出Checkout项目到Eclipse中四、提交Commit修改后的内容到服务器五、在Eclipse中执行update更新代码六、在Eclipse中解决冲突七、在Eclipse中恢复历史版本 一、安装SVN 二、导入Eclipse中的项目到SVN 三、检出Checkout项目到Eclipse中 四、提交Commit修改后的内容到服务器 五、在Ec

立志成为一个前端、后端、测试全方位发展的程序员 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【SVN】IDEA下使用SVN,SVN规范

【SVN】IDEA下使用SVN,SVN规范1. IDEA下使用SVN1.1 配置SVN1.2 使用SVN2. SVN规范2.1 目录规范2.2 分支与标记2.3 主干与分支或标记的合并 1. IDEA下使用SVN 1.1 配置SVN 前提是我们的电脑上已经安装了TortoiseSVN。 File --> Setting --> Version Control --> Subver...

来日浅谈的博客 1052

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SVN使用方法详解

SVN是如何使用的你是否熟悉,在这里简单向大家介绍一下SVN是如何使用,希望通过本文的介绍大家能够掌握SVN使用方法,欢迎大家一起来学习。 AD:2013云计算架构师峰会课程资料下载 本节和大家一起学习一下SVN使用方法,主要从三方面来介绍,在这里和大家分享一下,希望本节的介绍对你的学习有所帮助。 SVN使用: 1. 首先是安装TortoiseSVN这个Win下的客户端(当然用

MayBe_MBack 1064

SVN的使用详解

svn 介绍 、什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,是用于多个人共同开发同一个项目,共用资源的目的。所谓的版本控制,就是记录项目代码文件夹和文件的每一次改动,并为每次改动编上序号,也叫做版本号,用于存储、追踪文件夹和文件的修改历史。 通过版本控制软件,我们可以对项目代码的修改历史进行查看,或者直接把代码恢复到以前的一个版本代码。 3、使用S...

李意成的博客 822

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN

1、SVN介绍 SVN是Subversion的简称,是一个自由开源的版本控制系统。 Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具,后续我们会学到。 ...

No8g攻城狮的博客 2092

Windows如何使用SVN协议访问SVN服务器

如何使用SVN协议使VisualSVN服务器运行,how to get VisualSVN server to run using the SVN protocol

skylemonsky的博客 4377
上一篇: svn
下一篇: Subversion服务与客户端安装[Linux版]
nevercgoodbye
博客等级 码龄18年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值