配置Subversion

采用Subversion作为版本控制,配置方式如下:

版本控制选用Subversion,它对重构的支持比CVS要好。例如改名,原子提交等CVS无法支持的操作。

安装 Subversion

http://subversion.tigris.org/ 下载最新版的 Subversion,你可以下载 .zip 或者打包好的自动安装程序,我下载的是档案 svn-1.3.2.setup.exe。

下载后直接安装,安装过程都是下一步,没什么特别的。安装完成后,连必要的环境变量都帮你设定好了(如果你下载的是 .zip 档,就要自行设定)。

建立档案库

假设我们要把所有的档案库都放在 d:/svn 目录下,现在要建立一个测试用的档案库,名称叫做 在 repository,指令为:

md d:/svn

svnadmin create d:/svn/repository、

命令执行完后,检查看看 d:/svn/repository 目录底下产生了哪些目录和档案。

警告

档案库绝对不可以在建立在任何远程的储存媒体上,例如:网络磁盘驱动器。

汇入专案

不用急着把你现有的正式项目汇入档案库,先建立一个用来测试的项目目录就好了。我们先在 c:/temp 底下建一个 ProjectA 的项目目录结构,参考下面的指令:

c:

cd temp

md ProjectA

md ProjectA/trunk

md ProjectA/branches

md ProjectA/tags

svn import . d:/svn/repository -m "Initial repository layout"

或通过TortoiseSVN建立svn根目录。立即就可以使用client通过file:///d:/svn来访问该目录。

档案库与项目的配置方式

延续前面的范例,如果你再汇入其它项目,例如 ProjectB,那么整个档案库的结构会变成这样:

/svn/repository/
 +-- ProjectA/
 +-- ProjectB/ 

也就是说 repository 这个档案库里面包含了两个项目。

如果你希望为每个项目建立一个档案库,那么在 2.4 节中建立档案库的指令就变成:

md d:/svn

svnadmin create d:/svn/repository/ProjectA

svnadmin create d:/svn/repository/ProjectB

这样就变成有两个档案库了,档案库名称分别是 ProjectA 与 ProjectB。

提示 如果项目之间有共享的档案,建议把这些相关的项目放进同一个档案库;如果项目之间彼此毫无关系,那就采用一个档案库放一个项目的方式,这种方式等于项目就是档案库。 第一种方式有个比较奇怪的「功能」你应该要知道,就是一个项目的 check in 动作,也会令其它项目的档案的修订版次递增 ,如果这不是你想要的,请选择第二种方式,即一个档案库只存放一个项目。

项目的目录结构

这里补充说明一下 ProjectA 的目录结构。在 ProjectA 项目的根目录下建立的 trunk、branches、和 tags 这三个目录是有特别意义的,它们的作用分别是:

trunk 目录用来存份目前项目正在进行开发的程序档案和文件(又称为主线,即 mainline);

branches 用来存放主线的各个仍在发展中的分支;

tags 则用来存放已经不再变动的分支,也就是其中的档案不会再修改了。

这是 Subverion 官方手册建议的目录结构安排方式,你可以自己决定要不要用这种配置方式,详细说明请参考官方手册的第五章,子标题为 "Choosing a Repository Layout"。

SVN有3种常用访问方式。通过file://, svn://,http:// 等不同的协议来访问。对于协作开发,这三种都可以胜任:如果在同一局域网内,可通过windows的文件共享协议来访问其他机器上的文件,例如file://server/d/svn。svn协议使用3690端口,如果防火墙无法打开端口,可与Apache整合使用http协议。

采用svn协议的好处是安全性比较强,可任意更改服务监听端口。运行%SVN_HOME%\bin\svnserve –d –r d:\svn,即可按照daemon方式来运行一个后台进程,监听svn协议的请求。-r的作用是声明root目录。

在linux下运行一个daemon进程非常简单,但是在windows中想让进程在后台运行就需要做成服务才行。下载并安装SVN Service Wrapper,将svnserve包装为服务。

http://dark.clansoft.dk/~mbn/svnservice/

执行:svnservice -install -d -r d:\svnrepo,在控制面板->服务中手动开启。用TortoiseSVN浏览svn://localhost/,注意要带上最后的“/”指明root才能正确访问。

使用版本控制必须要进行权限控制,svn协议的权限控制可通过ssh来控制,访问协议则改为:svn+ssh://localhost/,windows下这种方式需要安装ssh客户端。

另一种简易的版本控制为使用passwd文件。修改%REPO_HOME%/conf/ svnserve.conf,包含如下几句:

[general]        # 指定匿名可读,授权后才可写入        anon-access = read        auth-access = write        # 指定密码文件为当前目录下passwd        password-db = passwd

Passwd文件内容如下,用户名 = 密码:

[users]        user1 = 123456

    Subversion的Eclipse插件为:Subclipse,对SVN支持比较完善。一般的操作均可胜任。Subclipse和TortoiseSVN结合使用能发挥更大的威力。

相关网站

http://subversion.tigris.org SVN官方网站

http://tortoisesvn.tigris.org TortoiseSVN,很好的SVN客户端

http://dark.clansoft.dk/~mbn/svnservice/ SVN Service Wrapper

http://subclipse.tigris.org SVN eclipse插件

参考资料

http://svn.ntcu.net/kwiki/ 中文的SVN资料

http://svnbook.red-bean.com/ Book: Version Control with SVN

http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm SVN for Windows中文安装指南

http://svn.ntcu.net/svnbook/ SVN Book中文翻译

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

从 CVE-2018-8495 看 PC 端 url scheme 的安全问题

本文受 CVE-2018-8495 漏洞的启发,以学习的目的,针对 PC 端 url scheme 的安全问题进行了分析研究。

1141
来自专栏Fred Liang

Panel

一句话描述:Panel 是一个移动端 APP,提供云服务器以及容器管理服务,用户可以快速地通过 Panel 创建,启动,停止,销毁云服务器和容器。

621
来自专栏KK的小酒馆

Flutter 在macOS的安装步骤

Flutter至今为止,还是个比较新的跨平台方案,不过既然是谷歌推出的,我们空余时间就来研究下

1832
来自专栏PHP在线

php + mysql 分布式事务

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元; 事务应该具有4个属性:原子性、一致性、隔离性、持续性; 原子性(atomi...

4846
来自专栏王亚昌的专栏

服务器模型小结(未完成)

    server每次accept一个请求,收包,完成业务处理逻辑后回包,完成整个请求的处理后,才能继续接入下一个请求。这种server模式仅适用于业务处理

992
来自专栏Coding01

利用 Valet 开发和调试 PHP 项目

对于开发者来说,为自己投资买一台 Mac,这可是「低投资高回报」,平时在开发 PHP 项目时,常规的做法需要在电脑上安装一系列开发工具,如: XAMP,还需要配...

1233
来自专栏linux驱动个人学习

Linux启动流程

启动第一步--加载BIOS  当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包...

3215
来自专栏破晓之歌

各类远程工具对比 原

界面及简,连接较快,但是传播上慢点。举例说,在腾讯云上直接下载就块点,几百K,用这个显示只有几十K。能用,但是时间长看白色界面很累。

1.3K4
来自专栏散尽浮华

Netdata---Linux系统性能实时监控平台部署记录

通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况。下面就介绍下一款Linux性能实时监测工具-Netda...

7318
来自专栏小白安全

小白博客 Kali Linux - 开发工具介绍及应用

在本章中,我们将学习Kali Linux提供的各种开发工具。 Metasploit的 正如我们之前提到的,Metasploit是Rapid7的产品,大...

3906

扫码关注云+社区