subversion/SVN的安装配置

本文详细介绍Subversion的安装配置过程,包括ApacheHttpServer的设置、权限管理、冲突解决及项目导入导出等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    长久以来,在开源世界中,CVS(Concurrent Versions System)一直都是版本控制的首选。但是现在用户有了另一个选择,就是Subversion。Subversion是下一代版本控制系统,能替代CVS,项目主页是http://subversion.tigris.org。 
    Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。 
    它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。。。 

    如果你使用过CVS就能体会到上文所说的Subversion好处了,比如目录版本控制,目录的改名等。对于Subversion的原子提交,我想多说几句,大家可以想象,我们一般做一个修改,可能需要改动多个文件,尤其现在大家多对分层已经趋之若鹜了,除非你还在用着哪种什么东西都写在一起的语言。(比如PB?呵呵,感觉好像是这样的东西。)如果你的一次提交过程中,由于网路原因或者机器的硬件原因或者根本是你自己落下了一些文件没提交,在逻辑意义上这次提交是不完整的,Subversion的原子提交能很好的解决这个问题,个人认为这也是对于CVS最大的改进了,这有些类似数据库的事务。

 

    在正式安装配置Subversion之前我们先来作点准备工作,由于我们以后会经常在命令行下执行命令,每次打开一个新的命令行窗口默认的当前目录都是C:\Documents and Settings\$UserName,这样在执行命令之前都要切换目录,很麻烦,所以我们先来解决这个问题。在“开始”-“运行”中输入“regedit”,打开注册表。找到\HKEY_CLASSES_ROOT\Folder\shell,如果没有shell,可以在Folder下新建一个名为shell的键,在shell下新建一个名为“命令行(Command Windows)”的键,在这个键之下再建一个新的名为“Command”的键,设置默认值为“cmd /K cd /d %L”。 这样当我们选中一个目录,在右键上下文菜单里面就多了一个“命令行(Command Windows)”的选项,单击这个选项就可以打开一个命令行窗口并且快速切换到当前选中的目录。

 

 

一、软件下载:

apache: http://www.apache.org/  (apache2.2对tortoiseSVN的支持有点问题,故安装apache2.0.x)

subversion: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

tortoiseSVN: http://tortoisesvn.net/

 

二、软件安装

(1)安装apache2.0.x

1.域名的设置:
localhost
localhost
邮箱随便填

2.解决迅雷占用80端口的问题:
将其设为随机端口

(2)安装svn1.4.6+

apache2.0.x支持svn1.4.6

(3)安装tortoiseSVN 1.3.2+

 

三、subversion配置

Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。Apache Http Server是基于Apache Http Server的Subversion,这样做几个好处:

A.能使用WebDAV协议。

B.通过Apache以HTTP方式穿透防火墙,便于在互联网环境使用,能使用浏览器作为客户端工具浏览源码仓库。

C.可以很容易的支持到SSPI(Windows域认证)和LDAP(AD?),这些都是Apache本身就支持的。

D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。

 

第一步,打开Apache安装目录下的httpd.conf文件
找到下面的语句:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将上面语句前面的#去掉(注:可能已经被注释掉了)

 

第二步,在这句后面追加,如下语句:
LoadModule dav_svn_module "{svn安装目录}/bin/mod_dav_svn.so"
LoadModule authz_svn_module "{svn安装目录}/bin/mod_authz_svn.so"
注:{svn安装目录}就是svn-win32-1.4.5.zip解压后你放的目录(注:可能SVN已经替你加上了)
 
第三步,在这个文件的最后,追加如下语句:
<Location /svn>
    DAV svn
    SVNParentPath d:/mysvnroot (这是svn父目录,创建的svn repository一定要在改目录下,且斜杠不能写反了!)
</Location>

 

第四步,创建仓库
根据apache的配置文件的设置建立目录:d:/mysvnroot,然后用svnadmin create d:/mysvnroot/test命令创建仓库,命令执行成功之后,会在d:/mysvnroot/test下面生成很多的文件和目录。(也可以新建一个文件夹,右击tortoiseSVN>create repository here...)

 

第五步,运行
重新启动Apache Server
在浏览器中输入网址:http://localhost/svn/test/
这时候,看到页面显示:
Revision 0: /
Powered by Subversion version 1.3.2 (r19776).
安装成功,接下来将进行权限设置。

 

第六步,svn使用apache的权限管理对档案库及目录进行读写管理

修改上面第三步的内容为:

<Location /svn>
    DAV svn
    #SVNListParentPath on
    SVNParentPath d:/mysvnroot

    ### apache auth begin
    # how to authenticate a user
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile d:/mysvnroot/apache_authz (保存用户名和密码,这个文件需要用Apache的htpasswd工具创建)
    Require valid-user
    ### apache auth end

    ### svn auth begin
    # our access control policy
    AuthzSVNAccessFile d:/mysvnroot/svn_authz  (保存用户访问的权限策略)
    # authentication if necessary
    #Satisfy Any
    ### svn auth end
</Location>


第七步,用htpasswd工具创建apache_authz 文件,建立保存用户名和密码的文件
htpasswd -cm  d:/mysvnroot/apache_authz  zx
-c 表示创建文件,-m表示对密码用md5加密
然后,会提示输入两次密码,以后再加用户就不需要用-c了,直接用-m即可。
htpasswd -m d:/mysvnroot/ apache_authz yh
然后,会提示输入两次密码
下面建立控制用户访问权限的文件svn_authz
在d:/mysvnroot中新建一个记事本文件,输入下面的内容:
[groups]
admin = zx
test-developers = yh
everyone = @test-developers
[test:/] 
@admin=rw                   //这表示,仓库test的根目录下的访问权限
@test-developers = r
[test:/test]             //test仓库下test目录的访问权限
@admin = rw
@test-developers = rw         // 如果在前面加上@符号,则表示这是个群组权限设置 r表示读权限 w表示写权限


第八步,配置完成,重新启动Apache server
在浏览器地址栏中再次输入:http://localhost/svn/test/
这次要输入密码才能进入。


第九步,将一个项目文件夹导入到svn中
右击要导入的文件夹,tortoiseSVN>import...
键入地址:http://localhost/svn/test/
如果设置了密码,则会要求输入用户名和密码

 

第十步,从svn中将项目checkout
任意右击 SVN checkout...
键入地址 http://localhost/svn/test/
选择目的地址即可

 

第十一步,解决冲突
当多个人同时提交一个文件的修改时,可能产生冲突。
冲突时,会生成三个临时文件,同时冲突的文件有感叹号标识。
三个文件分别是:.mine(我的文件) .r版本号-1(前一个版本) .r版本号(当前最新版本)
右击冲突文件; tortoiseSVN>Edit conflicts...
修改后再提交即可。

 

内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模预测。; 适合人群:具备一定机器学习基础,特别是对神经网络优化算法有一定了解的研发人员、数据科学家研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数训练时间;③ 提高模型的稳定性泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例注释,便于理解二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展维护。此外,项目还提供了多种评价指标可视化分析方法,确保实验结果科学可信。
该文档为 C 语言入门教程,围绕函数、数组、指针、字符串、结构体等核心概念展开,具体内容如下: 函数入门:函数是模块化编程的基础,可抽象独立功能并重复使用。分为无参函数有参函数,及库函数(系统提供,需包含头文件)与自定义函数(用户编写)。详解函数定义四要素(返回类型、函数名、参数列表、函数体)、形参与实参的单向值传递、返回值规则,以及函数声明与定义的区别,还涉及嵌套调用递归调用。 数组:用于存储同一类型的多个元素,内存连续。包括一维数组(声明、初始化、下标访问,案例有逆序输出、排序)、二维数组(行列结构,案例有矩阵转置、杨辉三角)及高维数组,强调避免下标越界,且数组不可整体赋值、比较或运算。 指针:指针即变量地址,指针变量用于存储地址。详解指针声明、初始化(避免未初始化)、取地址(&)与间接访问(*)运算符,及指针运算(赋值、算术、比较、相减)。介绍指针与数组的关联、函数指针、返回指针的函数,以及动态内存分配(malloc、free 等函数)及内存泄漏问题。 字符串及操作:以 '\0' 结尾的字符数组,可整体输入输出。讲解字符数组与字符指针的区别,字符串处理函数(strcpy、strcmp、strcat 等),及字符串初始化赋值规则。 结构体、共用体、枚举 typedef:结构体组合不同类型数据,有定义、初始化、引用及数组、指针用法;共用体成员共享内存,同一时刻仅一个成员有效;枚举类型列举可能值;typedef 为类型取别名,简化编程。 初学者答疑:解答指针与地址区别、内存泄漏、字符串赋值等常见问题,并附综合习题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值