版本控制Subversion TortoiseSVN apache VisualSVN【使用方法】 trunk tags用法(2013-03-12 23:40:07)
apache
Subversion和apache,apr,apr-util的关系
作者:PCplayer 来自:我用Subversion - http://www.iUseSVN.com 时间:2007.3.8 修改时间:2007.10.26
很多朋友初次接触Subversion时不是很理解subversion和apache的关系。
我在这里简单说明一下svn服务器和客户端的安装说明。
服务器
subversion服务器是不需要apache的,但是可以使用apache,视具体情况来选择。
1、如果只要通过file://或svn://来访问,则不需要apache,只安装svn即可,使用svnserve来作为服务。
2、如果你要建立一个可以通过http://或https://来访问的版本库服务器,则你需要使用apache。
基于apache配置,请看http://bbs.iusesvn.com/thread-158-1-1.html 。
客户端
在windows下,不管你要访问的是什么类型的服务器,只要安装一个TortoiseSVN就可以了,开发者已经帮你搞定一切。
在类Linux系统下,如果你通过file://或svn://来访问,则只要编译安装svn就可以,
如果通过http://访问,则要同neon编译,
如果通过https://访问,则要同带ssl支持的neon编译,
不论怎样,都要同apr和apr-util编译。
neon、apr、apr-util也很容易获得,目前发布的subversion代码都会有一个叫做subversion-deps-xxx的文件,比如1.4.3的就是subversion-deps-1.4.3.tar.bz2
对于访问国外网站比较慢的朋友,下载Subversion和客户端,可以到 http://www.iUseSVN.com ,因带宽和流量有限,网站只对注册用户开放下载,这点有点麻烦,但是很值得,一是下载速度的确相当快,二是里面有很多热于与大家交流的Subversion爱好者。
本文将介绍Windows下subversion作为Apache module的安装方法。
安装Apache
从 http://httpd.apache.org/ 上下载Apache。最新版本的subversion仅支持 Apache 2.0.x,不支持Apache 1.3.x,所以请下载 Apache 2.0.x 版本。最新版本为 Apache 2.0.59。
2007-6-6追加:另外subversion也不支持Apache 2.2.x版本,详细原因请参考这里。
下载之后运行安装程序进行安装。安装完毕之后,打开浏览器,输入 http://localhost/,如果能够看到 Apache 的欢迎画面,即表示安装成功。
安装subversion
下载
从 http://subversion.tigris.org/ 下载subversion,最新版本为1.3.1。这里我们选择for Win32的zip版(svn-win32-1.3.1.zip)下载。
安装
下载之后将 svn-win32-1.3.1.zip 解压缩到 C:\ 下。为方便起见,将目录名svn-win32-1.3.1修改为 svn。
然后我们需要建立一个保存subversion的版本库的目录。假设我们将此目录命名为 C:\svnwork。
打开“控制面板”->“系统”->“高级”->“环境变量”,修改PATH变量,在其末尾添加 C:\svn\bin。
然后将 C:\svn\bin 下面的 modauthzsvn.so、moddavsvn.so 两个文件复制到 Apache 的 modules 目录下。打开Apache的配置文件 httpd.conf,查找 LoadModule,将下面这一行之前的 # 去掉:
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
之后在httpd.conf的末尾添加如下几行:
<Location /repos> DAV svn SVNParentPath C:/svnwork </Location>
其中,repos 为从Web上访问版本库时所使用的路径,而SVNParentPath后面的目录即为版本库目录的位置。该指令告诉Apache,所有以 /repos 开头的请求都交给subversion处理。
然后重新启动计算机(原因请参见这里)。打开“控制面板”->“管理工具”->“服务”,查看Apache2服务的描述,如果描述变成类似于“Apache/2.0.54 (Win32) DAV/2 SVN/1.3.1”(包含SVN字样)则说明安装成功。
客户端设置
subversion的用户需要设置如下环境变量:
SVN_EDITOR="C:\Windows\notepad.exe"
当使用subversion进行导入、提交等操作时,subversion会调用该程序编辑提交说明。
建立subversion的版本库
作为演示,我们建立一个版本库。首先打开命令行提示符,进入C:\svnwork,输入以下命令:
svnadmin create demo
然后尝试向demo版本库中添加代码。假设我们在 D:\program\svntest 下面有一个名为 demo.c 的文件,那么我们输入以下命令:
D: cd program svn import svntest http://localhost/repos/demo
其中 svntest 为目录名。svn会调用文本编辑器来编辑说明文字,保存并关闭之后,svn会显示:
Adding svntest\demo.c Committed revision 1.
然后可以通过以下命令察看保存到服务器上的文件:
svn list http://localhost/repos/demo demo.c
VisualSVN
VisualSVN Server的配置和使用方法 图文
传到SVN 服务器上的代码存放的位置,在服务器安装时,有一个可配置的地方,可配置;且上传的代码是被压缩后存放在配置服务器时,指定的地方的;
SVN中trunk,branches,tags用法详解
比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是
svn://proj/|+-trunk+-branches+-tags
这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发(比如freebsd),因为互联网的开发模式是完全不一样的。 1.第一种方法,使用trunk作为主要的开发目录
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk进行开发。
此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求【新开发的东西还不能用】,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。
例如,刚刚发布1.0,正在开发2.0,此时要在1.0的基础上进行bug修正。
按照时间的顺序
1.0开发完毕,代码冻结
基于已经冻结的trunk,为release1.0打tag
此时的目录结构为
svn://proj/
+trunk/ (freeze)
+branches/
+tags/
+tag_release_1.0 (copy from trunk)
2.0开始开发,trunk此时为2.0的开发版
发现1.0有bug,需要修改,基于1.0的tag做branch
此时的目录结构为
svn://proj/
+trunk/ ( dev 2.0 )
+branches/
+dev_1.0_bugfix (copy from tag/release_1.0)
+tags/
+release_1.0 (copy from trunk)
在1.0 bugfix branch进行1.0 bugfix开发,在trunk进行2.0开发
在1.0 bugfix 完成之后,基于dev_1.0_bugfix的branch做release等
根据需要选择性的把dev_1.0_bugfix这个分支merge回trunk(什么时候进行这步操作,要根据具体情况)
这是一种很标准的开发模式,很多的公司都是采用这种模式进行开发的。trunk永远是开发的主要目录。
2.第二种方法,在每一个release的branch中进行各自的开发,trunk只做发布使用。
这种开发模式当中,trunk是不承担具体开发任务的,一个版本/阶段的开发任务在开始的时候,根据已经release的版本做新的开发分支,并且基于这个分支进行开发。还是举上面的例子,这里面的时序关系是:
1.0开发,做dev1.0的branch
此时的目录结构
svn://proj/
+trunk/ (不担负开发任务 )
+branches/
+dev_1.0 (copy from trunk)
+tags/
1.0开发完成,merge dev1.0到trunk
此时的目录结构
svn://proj/
+trunk/ (merge from branch dev_1.0)
+branches/
+dev_1.0 (开发任务结束,freeze)
+tags/
根据trunk做1.0的tag
此时的目录结构
svn://proj/
+trunk/ (merge from branch dev_1.0)
+branches/
+dev_1.0 (开发任务结束,freeze)
+tags/
+tag_release_1.0 (copy from trunk)
1.0开发,做dev2.0分支
此时的目录结构
svn://proj/
+trunk/
+branches/
+dev_1.0 (开发任务结束,freeze)
+dev_2.0 (进行2.0开发)
+tags/
+tag_release_1.0 (copy from trunk)
1.0有bug,直接在dev1.0的分支上修复
外网访问SVN服务器的方法
1、路由端口映射:
进入路由器管理管理界面-->转发规则-->虚拟服务器
将端口3690(svn默认端口)和你的局域网IP(如192.168.1.104)映射,勾上“启动”,保存,OK了。
2、测试:比如你的电信IP为:121.11.201.104;svn客户端输入地址:svn://121.11.201.104:3690/trunk
3、要让svn客户端能用http访问,好像要apche之类的服务器配合。
相关推荐
用subversion(SVN)进行版本管理。
**软件开发管理中的版本控制是至关重要的环节,而Subversion(SVN)作为一个成熟的版本控制系统,为团队协作和代码管理提供了强大的支持。本篇将深入探讨SVN的基础知识及其在实际开发中的应用。** **一、Subversion...
Subversion(SVN)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更。它允许多人协同工作,并在代码修改、合并和版本控制方面提供强大的功能。Subversion服务端是整个系统的核心,负责存储和管理项目...
在软件开发过程中,SVN允许开发者保存不同版本的源代码,以便在需要时回溯到之前的版本,同时提供合并、分支和标记等高级功能,确保团队间的代码同步和管理效率。 1. 版本控制概念: 版本控制系统如SVN,用于记录...
Subversion(简称 SVN),作为一种先进的版本控制系统,它的出现是对早期版本控制系统CVS(Concurrent Versions System)的一次重大革新。早在2000年,CollabNet, Inc.意识到CVS存在的诸多问题后,决定开发一个全新...
Eclipse 插件 Subversive 是一款用于集成 Subversion(SVN)版本控制系统的重要工具,它使得开发人员在 Eclipse 开发环境中可以直接进行源代码的版本管理操作。Subversion 是一个开源的版本控制系统,广泛应用于软件...
**Subversion**(简称SVN)是一款开源的版本控制系统,用于管理文件和目录的变化历史。它允许用户恢复早期版本的数据,或者查看数据如何随时间变化。此外,SVN还支持多用户协作,即允许多个用户在同一台计算机上或通过...
**Subversion(SVN)** 是一款开源的版本控制系统,用于管理软件开发过程中代码的变更历史,便于团队协作。Subversion 提供了集中式的版本控制,使得多个人可以在同一份文件上协同工作,同时保持文件的历史版本记录...
Subversion(简称svn)是开源的版本控制系统,用于管理文件和目录在不同时间的更改,以便多人协同工作。Subversion1.8.13是该系统的一个特定版本,提供了许多改进和新特性。 Subversion的核心功能包括: 1. **版本...
Subversion(简称svn)是流行的版本控制系统,用于管理源代码版本。Jenkins SVN 插件是将这两者结合的关键,它使得 Jenkins 能够与 Subversion 进行交互,例如拉取代码、跟踪代码变更以及触发构建。 **Jenkins SVN ...
Subversion(SVN)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件。它允许团队成员协同工作,跟踪文件的更改,恢复旧版本,并确保数据的安全性。在这个"SVN.rar"压缩包中,包含了一份名为"SVN....
Subversion(SVN)是一个开源的版本控制系统,被广泛用于文件和代码管理。它允许用户保存修订历史记录,从而可以追踪文件的历史更改,并在必要时回滚到任何版本。Subversion是配置管理工具中的佼佼者,被世界上许多...
svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
Subversion(简称SVN)是一种版本控制系统,用于管理和跟踪文件及目录在开发过程中的更改。在IT行业中,Subversion被广泛应用于软件开发项目,帮助团队协作并保持代码库的一致性和完整性。本教程将深入讲解如何搭建...
Subversion(SVN)是一种广泛使用的版本控制系统,它允许用户管理文件和目录的变更历史,以便在多人协作的环境中跟踪和恢复更改。TortoiseSVN则是Subversion的一个图形化客户端,尤其为Windows用户提供了方便的集成...
标题中的“svn服务器软件Setup-Subversion-1.6.13”指的是Subversion(简称SVN)的一个特定版本——1.6.13的服务器安装程序。Subversion是一款广泛使用的版本控制系统,它允许团队成员协作开发项目,同时管理文件和...
Subversion(SVN)是一个版本控制系统,它用于管理文件和目录的变化。SVN是CVS(Concurrent Versions System)的后继者,并且它是一个开源的软件版本管理工具,被广泛用于软件开发中以协助代码的版本控制。它在管理...
Subversion(简称svn)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的历史变更。在Subversion中,权限管理是确保团队协作安全性和效率的关键环节。本文将详细讲解如何在Subversion中设置使用...