`
virues
  • 浏览: 71072 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何搭建本地SVN版本库

 
阅读更多
搭建好svn后创建svn版本

1、创建一个空文件夹,右键->TortoiseSVN->CreateRepositoryhere,然后该文件夹会自动生成一些文件出来

2、用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:#password-db=passwd改 为:password-db=passwd
     即去掉前面的#注释符

3、修改同目录的passwd文件,增加一个帐号

    增加帐号:
    [users]
     #harry=harryssecret
     #sally=sallyssecret
     amylv=amylv
4、初始化导入   比如在d:\wwwroot下有个gstbook文件夹,在此文件夹上“右键 ->TortoiseSVN->Import...”,

     输入你的用户名跟密码

     到此ok了

附:svn服务器端只能装在c盘下  svnserve.exe --daemon 这个命令才能使用,版本库也必须放在c盘下svn://localhost  对应的是c盘直接目录

        如果你创建的文件夹目录为 c:/svnlib/weibo。那么import的地址为svn://localhost/svnlib/weibo



本节向大家描述一下搭建svn服务的方法步骤问题,主要有七个部分,这里我发表一下个人理解,和大家讨论讨论,欢迎大家一起来学习搭建svn服务 。下面是具体的步骤介绍。
一、准备工作
1、获取S version服务器程序
到官方网站(http://s version.tigris.org/)下载最新的服务器安装程序。目前最新的是1.5版本,具体下载地址 在:http://s version.tigris.org/servlets /ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
2、获取TortoiseSVN客户端程序
从官方网站http://tortoisesvn.net/downloads获取最新的TortoiseSVN。TortoiseSVN是一个客户端程 序,用来与s vers服务器端通讯。S version自带一个客户端程序svn.exe,但TortoiseSVN更好操作,提高效率。
二、安装服务器端和客户端
搭建svn服务第二步要安装服务器端和客户端。安装S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个zip压缩包,直 接解压缩即可,比如我解压到E:\s version。客户端安装文件是个exe可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
三、建立版本库(Repository)
运行S version服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。开始建立版本 库。首先建立e:\svn空文件夹作为所有版本库的根目录。然后,进入命令行并切换到s version的bin目录。输入如下命 令:svnadmincreateE:\svn\repos1此命令在E:\svn下建立一个版本库repos1。repos1下面会自动生成一些文件夹 和文件。我们也可以使用TortoiseSVN图形化的完成这一步:先建立空目录E:\svn\repos1,注意一定是要空的。然后在repos1文件 夹上“右键->TortoiseSVN->CreateRepositoryhere...”,然后可以选择版本库模式,这里使用默认的 FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
四、运行独立服务器
搭建svn服务过程中要运行独立服务器。 此时s version服务还没有开始,只是通过它的命令建立了 版本库。继续在刚才的命令窗口输入:svnserve.exe--daemon
svnserve将会在端口3690等待请求,--daemon(两个短横线)选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退 出。注意不要关闭命令行窗口,关闭窗口会把svnserve停止。为了验证svnserve正常工作,使用TortoiseSVN->Repo- browser来查看版本库。在弹出的URL对话框中输入:svn://localhost/svn/repos1
点OK按钮后就可以看见repos1版本库的目录树结构了,只不过这时repos1是个空库。你也可以使用--root选项设置根位置来限制服务器的访问 目录,从而增加安全性和节约输入svnserveURL的时间:svnserve.exe--daemon--rootdrive:\path\to \repository以前面的测试作为例,svnserve将会运行为:svnserve.exe--daemon--roote:\svn然后 TortoiseSVN中的版本库浏览器URL缩减为:svn://localhost/repos1
五、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:#password-db=passwd改 为:password-db=passwd
即去掉前面的#注释符,注意前面不能有空格。然后修改同目录的passwd文件,增加一个帐号:将:
[users]
#harry=harryssecret
#sally=sallyssecret
增加帐号:
[users]
#harry=harryssecret
#sally=sallyssecret
test=test
六、初始化导入
下面就是搭建svn服务时将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢 失、改错数据时版本库也能帮我们找回数据。
比如,我在d:\wwwroot下有个gstbook文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 ->TortoiseSVN->Import...”,在弹出对话框的“URLofrepository”输入 “svn://localhost/repos1/gstbook”。在“Importmessage”输入“导入整个留言簿”作为注释。
点OK后要求输入帐号。我们在用户名和密码处都输入test。完成后gstbook中的内容全部导入到了svn://localhost/svn /repos1/gstbook。
我们看到在e:\svn\repos1没有任何变化,连个gstbook文件夹都没有建立,唯一的变化就是e:\svn\repos1容量变大了。实 际上我们源gstbook中的内容已经导入repos1版本库了,源gstbook文件夹可以删除了。需要注意的是,这一步操作可以完全在另一台 安装了TortoiseSVN的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是 “svn://133.96.121.22”。
七、基本操作流程
1、取出(checkout)
取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹f:\work。“右键->SVNCheckout”。在“URLofrepository”中输 入“svn://localhost/svn/repos1/gstbook”,这样我们就得到了一份gstbook中内容的工作拷贝。
2、存入(checkin)/提交(commit)
在工作拷贝中作出修改并提交:
在gstbook工作拷贝中随便打开一个文件,作出修改,然后“右键->SVNCommit...”。这样我们就把修改提交到了版本库,版本库 根据情况存储我们提交的数据。
在修改过的文件上“右键->TortoiseSVN->ShowLog”,可以看到对这个文件所有的提交。在不同的revision条目上 “右键->Comparewithworkingcopy”,我们可以比较工作拷贝的文件和所选revision版本的区别。本节介绍搭建SVN服 务完毕,请关注本节其他相关报道。







安装了两次终于明白应该注意什么了,总结一个最简单的说明,节省大家时间

1、获取svn程序

2、安装 S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\s version 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。

3、先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
(这一步注意svn服务端要和库目录在同一个盘符下面,否则提示找不到目录)

4、进入命令行并切换到s version的bin目录。输入如下命令:

svnserve.exe --daemon

svnserve 将会在端口 3690 等待请求,--daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止

5、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:
将:
# password-db = passwd
改为:
password-db = passwd

即去掉前面的 # 注释符,注意前面不能有空格。
然后修改同目录的passwd文件,增加一个帐号:

将:
[users]
# harry = harryssecret
# sally = sallyssecret

增加帐号:
[users]
#harry = harryssecret
#sally = sallyssecret
test = test

6、初始化导入

(在做这一步之前一定要执行第5步)
下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:\wwwroot 下有个 gstbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/repos1/gstbook”。在“Import message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 gstbook 中的内容全部导入到了 svn://localhost/svn/repo1/gstbook 。
我们看到在 e:\svn\repo1 没有任何变化,连个 gstbook 文件夹都没有建立,唯一的变化就是e:\svn\repo1容量变大了。实际上我们源gstbook中的内容已经导入 repo1 版本库了,源 gstbook 文件夹可以删除了。

7、svn配置结束,这是最简单的步骤,已经可以用了,然后把svn整合到系统服务,以后就不用一直开着命令窗口了。把以下内容粘贴到文本文件,然后重命名文件为:*.bat执行就好了,
sc create svnserver binpath= "C:\Program Files\S version\bin\svnserve.exe --service --root F:\svn" displayname= "svnserver" depend= tcpip start= auto obj= "NT AUTHORITY\NetworkService"
其中C:\Program Files\S version\bin\svnserve.exe 为svn的路径
F:\svn 为版本库的目录
displayname= "svnserver" 为设置服务的名字
--root 是设置根目录 比如:原来你访问为:svn://localhost/svn 
设置--root F:\svn之后缩写为svn://localhost 这个一定要注意,否则Error: URL 'svn://localhost/svn'doesn't exist

8、svn能用了,下面是原始资料,稍微整理了一下,如果以上内容不能满足,参考以下内容,希望没有浪费宝贵时间。如果希望网站同步更新,使用了钩子程序,也在下面内容。

S vision SVN (svn的服务器端)安装教程:
一、准备工作
1、获取 S version 服务器程序
到官方网站(http://s version.tigris.org/)下载最新的服务器安装程序。目前最新的是1.4.6版本,具体下载地址在:http://s version.tigris.org/ser ... 100&folderID=91 ,注意找for apache 2.2.x 版本的。

2、获取 TortoiseSVN 客户端程序
从官方网站 http://tortoisesvn.net/downloads 获取最新的TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 s version 服务器端通讯。S version 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。

二、安装服务器端和客户端
首先安装 Apache 2.2.6 ,具体安装方法大家参考相关资料,或者参看我写的《Windows下安装Apache 2.2.x》。
其次安装 S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\s version 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。

三、建立版本库(Repository)
运行S version服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。
开始建立版本库。首先建立 e:\svn 空文件夹作为所有版本库的根目录。然后,进入命令行并切换到s version的bin目录。输入如下命令:

svnadmin create E:\svn\repos1

此命令在 E:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件。

我们也可以使用 TortoiseSVN 图形化的完成这一步:
先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。

四、运行独立服务器
此时 s version 服务还没有开始,只是通过它的命令建立了版本库。继续在刚才的命令窗口输入:

svnserve.exe –daemon

svnserve 将会在端口 3690 等待请求,--daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止。

为了验证svnserve正常工作,使用TortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入:

svn://localhost/svn/repo1

点 OK 按钮后就可以看见 repo1 版本库的目录树结构了,只不过这时 repo1 是个空库。

你也可以使用--root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间:

svnserve.exe --daemon --root drive:\path\to\repository

以前面的测试作为例,svnserve将会运行为:

svnserve.exe --daemon --root e:\svn

然后TortoiseSVN中的版本库浏览器URL缩减为:

svn://localhost/repo1

五、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:
将:
# password-db = passwd

改为:
password-db = passwd

即去掉前面的 # 注释符,注意前面不能有空格。
然后修改同目录的passwd文件,增加一个帐号:

将:
[users]
# harry = harryssecret
# sally = sallyssecret

增加帐号:
[users]
#harry = harryssecret
#sally = sallyssecret
test = test

六、初始化导入
下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:\wwwroot 下有个 gstbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/repos1/gstbook”。在“Import message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 gstbook 中的内容全部导入到了 svn://localhost/svn/repo1/gstbook 。
我们看到在 e:\svn\repo1 没有任何变化,连个 gstbook 文件夹都没有建立,唯一的变化就是e:\svn\repo1容量变大了。实际上我们源gstbook中的内容已经导入 repo1 版本库了,源 gstbook 文件夹可以删除了。

需要注意的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22” 。


七、基本操作流程
1、取出(check out)
取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹 f:\work 。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repo1/gstbook”,这样我们就得到了一份 gstbook 中内容的工作拷贝。

2、存入(check in)/提交(commit)
在工作拷贝中作出修改并提交:
在 gstbook 工作拷贝中随便打开一个文件,作出修改,然后“右键 -> SVN Commit... ”。这样我们就把修改提交到了版本库,版本库根据情况存储我们提交的数据。

在修改过的文件上“右键 -> TortoiseSVN -> Show Log” ,可以看到对这个文件所有的提交。在不同的 revision 条目上“右键 -> Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版本的区别。



安装 ApacheSVN 服务器教程:

S version的设计包括一个抽象的网络层,这意味着版本库可以通过各种服务器进程访问。理论上讲,S version可以使用无限数量的网络协议实现,目前实践中存在着两种服务器。
?        SVNServer:svnserve是一个小的(也叫轻型的)、独立服务器,使用自己定义的协议和客户端。(作者注:以下称这种服务器为“svnserver服务器”,上面的安装配置就是安装svnserver服务器。)
?        ApacheSVN:Apache是最流行的web服务器,通过使用mod_dav_svn模块,Apache可以访问版本库,并且可以使客户端使用HTTP的扩展协议WebDAV/DeltaV进行访问。(作者注:以下称这种服务器为“ApacheSVN服务器”)

通过 Http 协议访问版本库是 S version 的亮点之一。ApacheSVN服务器具备了许多svnserve服务器没有的特性,使用上更加灵活,但是有一点难于配置,灵活通常会带来复杂性。

由于 S version 需要版本化的控制,因此标准的 Http 协议不能满足需求。要让 Apache 与 S version 协同工作,需要使用 WebDAV(Web-based Distributed Authoring and Versioning:)Web 分布式创作和版本控制)。WebDAV 是 HTTP 1.1 的扩展,关于 WebDAV 的规范和工作原理,可以参考 IETF RFC 2518 (http://www.ietf.org/rfc/rfc2518.txt)。

一、必备条件
为了让你的版本库使用HTTP网络,你必需具备以下几个条件:

1、配置好httpd 2.2.x,并且使用mod_dav启动。
2、为mod_dav安装mod_dav_svn插件。
3、配置你的httpd.conf,使http协议能访问版本库。

下面以我的配置过程详细讲解。

环境:
OS:Windows XP SP2
Web:Apache 2.2.6
SVN:svn-win32-1.4.6

二、安装
1、安装Apache
具体安装方法见:《Windows下安装Apache 2.2.x》

2、安装 S version
将下载下来的 svn-win32-1.4.6.zip 直接解压即可,比如我解压到 e:\s version 。
从S version安装目录的 bin 子目录将 intl3_svn.dll、libdb44.dll、mod_authz_svn.so、mod_dav_svn.so 拷贝到Apache的模块目录(Apache 安装目录的 modules 文件夹)。

三、基本的Apache配置
修改Apache的配置文件 httpd.conf ,使用LoadModule来加载mod_dav_svn模块。


#LoadModule dav_module modules/mod_dav.so

改成:
LoadModule dav_module modules/mod_dav.so

即去掉前面的“#”号。

添加:
LoadModule dav_svn_module modules/mod_dav_svn.so

一定确定它在 mod_dav 之后。

现在你已经设置了Apache和S version,但是Apache不知道如何处理S version客户端,例如TortoiseSVN。为了让Apache知道哪个目录是用来作为S version版本库,你需要使用编辑器(例如记事本)编辑Apache的配置文件。

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

<Location / repository>
DAV svn<


br /> SVNPath e:/svn/repos1
</Location>

这个配置告诉Apache首先需要启用 dav_module,然后加载 dav_svn_module 。版本库对外的URL是:http://服务器IP/repository ,所有的S version版本库在物理上位于e:/svn/repos1 。
配置完毕后重新启动 Apache,打开浏览器,输入 http://服务器IP/ repository 将会看到如下画面:


这表示 Apache 的 dav_svn 模块已经可以正常工作了。用户可以使用任何一种 S version 的客户端通过 Http 协议访问你的版本库。

如果想要指定多个版本库,可以用多个 Location 标签,也可以使用 SVNParentPath 代替 SVNPath,例如在 e:\svn 下有多个版本库 repos1,repos2 等等,用如下方式指定:

<Location /repository>
DAV svn
SVNParentPath e:/svn
</Location>

“SVNParentPath e:/svn ” 表示 e:\svn 下的每个子目录都是一个版本库。可以通过 http://服务器IP/repository/repos1,http://服务器IP/repository/repos2 来访问。

现在你的版本库任何人都可以访问,并且有完全的写操作权限。也就是说任何人都可以匿名读取,修改,提交,以及删除版本库中的内容(注:这时不需要配置E:\svn\repos\conf\svnserve.conf 文件,并且也不需要启动E:\s version\bin\svnserve.exe。因为提交是通过Apache的dav模块处理的,而不是由svnservice处理。)。我们用 TortoiseSVN 客户端验证即知。
显然大部分场合这是不符合需求的。那么如何进行权限设置呢,Apache 提供了基本的权限设置:

四、认证选项
1、基本 HTTP 认证
最简单的客户端认证方式是通过 HTTP 基本认证机制,简单的使用用户名和密码来验证一个用户的身份。Apache提供了一个 htpasswd 工具来管理一个用户文件,这个文件包含用户名和加密后的密码,这些就是你希望赋予 S version 特别权限的用户。htpasswd 可以在 Apache 的 bin 安装目录下找到。具体使用方法如下:

创建用户文件:
htpasswd -c /etc/svn/passwordfile username

添加新用户(-m 表示以MD5加密密码):
htpasswd [-m] /etc/svn/passwordfile Newusername

更改用户密码:
htpasswd [-m] /etc/svn/passwordfile username

删除用户(要用大写的 D ):
htpasswd –D /etc/svn/passwordfile username


接下来修改 httpd.conf,在 Location 标签中加入如下内容:

AuthType Basic
AuthName "svn repos"
AuthUserFile E:/usr/Apache2.2/bin/passwd
Require valid-user

说明:
AuthType Basic:启用基本的验证,比如用户名/密码对。
AuthName "svn repos":当一个认证对话框弹出时,出现在认证对话框中的信息。(最好用英文,TortoiseSVN 不支持中文,安装语言包除外。)
AuthUserFile E:/usr/Apache2.2/bin/passwd:指定E:\usr\Apache2.2\bin\passwd为用户文件,用来验证用户的用户名及密码。
Require valid-user:限定用户只有输入正确的用户名及密码后才能访问这个路径

重新启动 Apache ,打开浏览器访问版本库。Apache 会提示你输入用户名和密码来认证登陆了,现在只有 passwd 文件中设定的用户才可以访问版本库。也可以配置只有特定用户可以访问,替换上述 "Require valid-user" 为 "Require user tony robert" 将只有用户文件中的 tony 和 robert 可以访问该版本库。

有的时候也许不需要这样严格的访问控制,例如大多数开源项目允许匿名的读取操作,而只有认证用户才允许写操作。为了实现更为细致的权限认证,可以使用 Limit 和 LimitExcept 标签。例如:

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

以上配置将使匿名用户有读取权限,而限制只有 passwd 中配置的用户可以使用写操作。
如果这还不能满足你的要求,你希望精确的控制版本库目录访问,可以使用 Apache 的 mod_authz_svn 模块对每个目录进行认证操作。

2、用 mod_authz_svn 进行目录访问控制
首先需要让 Apache 将 mod_authz_svn 模块加载进来。在 S version 的安装目录中找到 mod_auth_svn 模块,将其拷贝到 Apache 安装目录的 modules 子目录下。修改 httpd.conf 文件,添加:

LoadModule authz_svn_module modules/mod_authz_svn.so

现在可以在 Location 标签中使用 authz 的功能了。一个基本的 authz 配置如下:

<Location /repository>
DAV svn
SVNParentPath e:/svn

# our access control policy
AuthzSVNAccessFile E:/usr/Apache2.2/bin/accesspolicy.conf

# try anonymous access first, resort to real
# authentication if necessary.
Satisfy Any
Require valid-user

# how to authenticate a user
AuthType Basic
AuthName "S version repository"
AuthUserFile E:/usr/Apache2.2/bin/passwd                 
</Location>

AuthzSVNAccessFile 指向的是 authz 的策略文件,详细的权限控制可以在这个策略文件中指定。访问文件 accesspolicy.conf 的语法与svnserve.conf和 Apache 的配置文件非常相似,以(#)开头的行会被忽略;在它的简单形式里,每一小节命名一个版本库和一个里面的路径;认证用户名是在每个小节中的选项名;每个选项的值描述了用户访问版本库的级别:r(只读)或者rw(读写),如果用户没有提到或者值留空,访问是不允许的; * 表示所有用户,用它控制匿名用户的访问权限;@符号区分组和用户。如:

[groups]
committers = paulex, richard
developers = jimmy, michel, spark, sean

[/]
* = r
@committers = rw

[/branches/dev]
@developers = rw

[/tags]
tony = rw
[/private]
* =
@committers= r

使用 SVNParentPath 代替 SVNPath 来指定多个版本库的父目录时,其中所有的版本库都将按照这个策略文件配置。例如上例中 tony 将对所有版本库里的 /tags 目录具有读写权限。如果要对具体每个版本库配置,用如下的语法:

[groups]
project1_committers = paulex, richard
project2_committers = jimmy, michel, spark, tony, Robert

[repos1:/]
* = r
@ project1_committer = rw

[repos2:/]
* = r
@ project2_committer = rw

这样 repos1的 project1_committer 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2 ,同样 repos2 的 project2_commiter 组也不能修改 repos1 版本库的文件。



FAQ:

1、路径或权限不足时将出现错误信息提示:

http://localhost (路径不对)
Error * PROPFIND reqst failed on ''/'' PROPFIND of ''/'': 200 OK (http://localhost)

http://localhost/svn (权限不足)
Error * PROPFIND reqst failed on ''/svn'' PROPFIND of ''/svn'': 403 Forbidden (http://localhost)

http://localhost/svn/repos (正常显示)

http://localhost/repos (权限不允许)
Error * PROPFIND reqst failed on ''/repos'' PROPFIND of ''/repos'': 405 Method Not Allowed (http://localhost)


2、不启动E:\s version\bin\svnserve.exe ,但启动了ApacheSVN ,访问(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:

现象:svn://localhost/svn/repos 不能访问或提交,提示:Error * Can''t connect to host ''localhost'': 由于目标机器积极拒绝,无法连接。 但 file:///e:/svn/repos 和 http://localhost/svn/repos 可以访问或提交。

原因:svn:// 是独立服务器 svnserver 自己的协议。file:/// 是本地访问,即服务器端和客户端在一个机器上。


文章出处:http://www.diybl.com/course/1_web/webjs/2008410/109655_2.html


http://hi.baidu.com/yuncsoft/blog/item/19b41d5168e4a81c377abed6.html
安装svn服务器后,为了方便启动必须在windows下添加服务项
我们使用批处理完成,做这一步要注意,添加之后只能从注册表删除,如果你知道别的办法请留言。感激不尽。

sc create svnserver binpath= "C:\Program Files\S version\bin\svnserve.exe --service --root F:\svn" displayname= "svnserver" depend= tcpip start= auto obj= "NT AUTHORITY\NetworkService"
其中C:\Program Files\S version\bin\svnserve.exe 为svn的路径
F:\svn 为版本库的目录
displayname= "svnserver" 为设置服务的名字
--root 是设置根目录 比如:原来你访问为:svn://localhost/svn 
设置--root F:\svn之后缩写为svn://localhost 这个一定要注意,否则Error: URL 'svn://localhost/svn'doesn't exist

自动更新的配置:

开发中经常要在更新SVN的同时要更新WEB服务器。可以用过S version的钩子(Hook)来实现。

以下是Windows操作系统下的配置:

在SVN库的hooks目录下面新建post-commit.bat文件,用记事本打开,然后写入如下的代码:

@echo off

SET REPOS=%1
SET REV=%2

SET DIR=%REPOS%/hooks
SET PATH=%PATH%;

SET WORKING_COPY=D:\Websites\Latisse
svn update %WORKING_COPY% –username user –password pwd

此处的D:\Websites\Latisse即是WEB网站的目录(当然得先建好这个目录,并且从svn服务器上签出相应的项目)。

这样在用户提交完后,便会自动更新到WEB服务器上。

需要注意到问题是:

1.不要在WEB网站文件夹下作修改或其它操作,防止出现文件夹被锁。无法更新。

2.在这里我明确写明了用户名(user),密码(pwd)。在我设置时发现,如果没有设置的话会出现错误,在直接运行这个bat文件时是能正常执行的,但是,在S version提交后却不能正常运行。并且可以看到服务器进程中会出现cmd,svn两个进程,并且不会自己结束,而用户在提交内容到服务器后,会出现客户端无法正常返回的问题。

3.如果运行不能正常,可以通过下面的方法看到出错信息:

将刚才的post-commit.bat改名为post-commit-run.bat,然后再建一个post-commit.bat的文件,里面写入如下的代码:

call %~dp0post-commit-run.bat %* > %1/hooks/post-commit.log 2>&1

这样运行结果就会被写入到post-commit.log文件中,如果出错,也可以找到出错的原因。



svn服务端更改ip后,客户端重新定位方法:
使用最新版本的TortoiseSVN,右键在工作复本的根目录上右键->TortoiseSVN->重新定位(Relocate),再按提示操作就可以了..不过最好先备份..因为这个操作有一定的危险性




分享到:
评论

相关推荐

    linux下的 svn命令

    2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“ [-N] [--no-unlock] PATH...

    SVN库建立及VSS数据导入

    在D:\SVN新建一个文件夹(test),右键-属性-在此创建版本库,这样就完成了。 二、 VSS数据导入SVN 说明:我是要将VSS数据历史迁移到SVN,但是在迁移过程中发生了错误(原因不明,希望以后大家明白了告诉我)。...

    IIS+SVN实现本地上传服务器自动更新

    4.在E:\web文件夹利用svn账号admin读取svn版本库建立初始版本(这步很重要,没有这步是会跳过web文件夹的) 5.现在客户机创建初始版本文件夹,把程序拷进来进行提交上传,服务器web文件夹自动的更

    SVN使用手册中文版快速入门

    我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的...

    创建svn服务器教程

    创建svn服务器教程,本机做服务器,让客户端把资源或工程传到本地创建的svn版本库中来,分fsfs和bdb两种版本存储方式

    SVN使用手册中文版.chm

    我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的...

    windows安装svn(服务端、客户端)

    文章详细介绍了在windows平台下安装svn客户端、服务端,以及创建服务、自启动;建立本地svn版本库

    AnkhSvn操作手册

    9 2.4.4 什么是冲突合并视图 10 3 开始使用 AnkhSvn10 3.1 安装 AnkhSVN 10 3.2 在 VisualStudio 中启用 AnkhSvn 10 3.3 将项目连接到 AnkhSVN 11 3.4 增加解决方案到版本库 12 3.5 浏览版本库13 3.6 增加工作拷贝到...

    SVN操作手册中文版网页格式

    3.1.2. 使用 TortoiseSVN 创建版本库 3.1.3. 本地访问版本库 3.1.4. 访问网络共享磁盘上的版本库 3.1.5. 版本库布局 3.2. 版本库备份 3.3. 服务器端钩子脚本 3.4. 检出链接 3.5. Accessing the Repository ...

    SVN中文使用手册

    第 3 章版 本库这一章解释了如何设置一个本地版本库,本地版本库对于在一台 PC 上测试 Subversion 和 TortoiseSVN 非常有用,这一章也介绍了一点版本库管理,也就是如何管理服务器上的版本库。如 果你需要一台...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    创建和配置你的版本库 创建版本库 实现版本库钩子 Berkeley DB 配置 版本库维护 管理员的工具箱 svnadmin svnlook svndumpfilter svnsync Berkeley DB 工具 修正提交消息 管理磁盘空间 Subversion如何节约磁盘空间 ...

    本地项目如何上传到码云远程仓库

    版本控制常用工具:git和svn,git分布式版本控制(代码仓库:本地仓库和远程仓库),svn集中式版本控制(远程仓库)。 远程仓库:码云/GitHub创建的仓库; 本地仓库:自己电脑中的仓库; commit:提交代码到本地仓库;...

    SVN客户端用户使用手册

    所以,每次在工作区文件夹下修改本地版本库之前,必须首先对本地版本库执行一次更新(右键单击工作区,选择SVN Updata),将最新的版本下载到本地,然后再进行修改操作。 二.其他操作 在日常的软件开发过程中,除了...

    svn-1.4.3-setup.exe.7z

    在我的公司,我可以使用 SMB(普通的 windows 文件访问)直接访问服务器的文件夹,所以我直接在那里创建一个目录,运行 TortoiseSVN 命令TortoiseSVN → 在此创建版本库...,然后一个新的项目建立了... 如果你使用 ...

    VisualSVN-Server-4.2.1-x64.rar

    SVN服务器端,可以搭建本地SVN版本控制器。使用VisualSVN Server建立版本库。可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.

    SVN 命令使用手册

    一、 常用命令 1. Svnadmin create 创建库 2. Svn import 导入项目 3. Svn co: 将文件 checkout 到本地...4. Svn add: 往版本库中添加新的文件 5. Svn ci: 将改动的文件提交到版本库 6. Svn up: 更新到某个版本 .....

    svn目录使用规范.doc

    介绍SVN各个目录使用规范 Svn目录使用规范 TortoiseSVN客户端工具 ...2、直接在SVN上在对应的标签/分支目录下创建对应的版本文件夹,将trunk下稳定版本的代码直接copy到对应的文件目录下即可。

    visualsvn_server.rar

    一款好用的本地svn搭建软件,可以使用该软件搭建一套svn服务器来进行版本管理,也可以将本地计算机模拟为本地svn服务器,组建本地svn管理库进行协同版本管理。

    一张图读懂SVN和Git原理(附环境搭建和使用)

    Git:是一种分布式管理的版本控制工具,分为远程版本库(如Github)和本地版本库(.git节点),每个节点都是自己服务器兼客户端(git没有服务器和客户端的说法),完成或修改代码时直接提交到本地版本库节点,无需...

    TortoiseSVN和TortoiseMerge的中文帮助文档(chm格式)

    1.3.1. 创建版本库 1.3.2. 导入项目 1.3.3. 检出工作副本 1.3.4. 进行修改 1.3.5. 添加更多的文件 1.3.6. 查看项目历史 1.3.7. 撤消更改 1.4. 继续前进 ... 2. 基本版本控制概念 2.1. 版本库 2.2. 版本模型 2.2.1. ...

Global site tag (gtag.js) - Google Analytics