Subversion名片:
Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据回复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
Subversion 与 CVS:
在SVN(Subversion)之前,CVS是使用最广泛的版本管理软件。CVS——Concurrent Version System:协同版本控制系统,服务器上保存所有的开发项目,开发者们通过服务器上的共享目录,共同开发同一个项目,达到追踪所有的工作进度,而服务器上也会保存历史版本信息,以方便开发者的出错。
Subversion是CVS的接班人,将渐渐取代CVS。
SVN与CVS对比的优势:
统一的版本号。
n CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
原子提交。
一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
重命名、复制、删除文件等动作都保存在版本历史记录当中。
对于二进制文件,使用了节省空间的保存方法。
目录也有版本历史。
整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
分支的开销非常小。
优化过的数据访问,使得一些操作不必访问数据库就可以做到。
这样减少了很多不必要的和数据库主机之间的网络流量。
获得SVN:
Subversion项目由CollabNet启动,在2009年11月Subversion加入了Apache软件基金会,成为ASF管理的超过130个开源项目之一。Subversion项目进入Apache孵化器仅数月的时间(大约2010年02月)已经得到Apache基金会管理委员会的批准,升级成为Apache正式顶级项目。SVN将为全世界的程序员提供更好的服务。
虽然CollabNet启动了这个项目,并且一直提供了大量的工作支持(它为一些全职的Subversion开发者提供薪水),但Subversion像其它许多开源项目一样,被松散的、透明的规则管理着,这样的规则激励着知识界的精英们。CollabNet的版权许可证完全符合Debian的自由软件方针。也就是说,任何人都可以根据自己的意愿自由的下载、修改和重新发布Subversion,不需要CollabNet或其他人的授权。
现在之前的SVN下载站http://subversion.tigris.org/ (Trgris-CollabNet)所有的源码及文档以正式提交到了http://subversion.apache.org/ 。目前最新的稳定版本为1.6。
现在我们可以用以下途径获得SVN:
访问Apache SVN 。在左侧找到Getting Subversion。点击Binary Packages。
在Binary Packages中找到SVN在Windows上的发行版。
我们看到在SVN在Windows上又有很多发行版,这里我们选择由CollabNet发行的SVN。
然后
下载就OK(6.71 MB)
安装SVN:
双击 开始安装。
然后一路 Next就搞定了。
获得TortoiseSVN:
TortoiseSVN是一个非常便捷的SVN客户端,TortoiseSVN很好与Windows资源管理器结合在一起,从而很方便得管理SVN版本库。
这里要提一下Subversion的客户端,一类是websvn,基于web的SVN管理软件,一类是一个TortoiseSVN为代表的桌面客户端软件。SVN代表的是代码版本的标准,并没有严格的区分其到底是客户端还是服务器,有些只提供客户端功能,有些之提供服务器功能,还有的两种都提供。
纯SVN是基于命令行的,SVN多是安装在Linux下,TortoiseSVN为SVN加了一个Windows资源管理器外壳并提供了相应的功能,这样TortoiseSVN更加便捷。
我们可以在http://tortoisesvn.net/downloads.html# 下载TortoiseSVN。
安装TortoiseSVN:
双击 开始安装。
一路Next就OK。安装完成后其实不必重启就可以使用。
创建版本库:
使用 svnadmin –create 命令创建版本库
安装SVN成功后,SVN会自动把安装目录下的bin路径添加到系统PATH中。此时就可以在Windows的cmd下使用svn命令了。
现在我们要在D:\ 下面创建我们的版本仓库,这个时候我们需要使用svnadmin命令,svnadmin的子命令也有很多,这里我们既然是要创建就少不了create。
这个时候我们就在D:\ 下创建了一个名为 svnrepo的版本仓库,同时我们可以在D:\ 下看到有个名为svnrepo的文件夹。
下面我们来看看这个目录里究竟有什么:
要说一点,要想保证你的版本仓库很安全很稳定的使用,第一不要乱动这个目录下的任何一个文件,第二给版本仓库设置权限。
OK,真正的版本控制文件在db文件夹下,conf下有版本仓库的相关配置,包括权限,密码等配置。
现在这版本仓库里没有任何东西,不着急向仓库添加东西,先来回顾下创建仓库的命令: svnadmin create 仓库名
使用TortoiseSVN创建版本仓库:
现在我们要开始使用TortoiseSVN了,或许你迫不及待地打开过TortoiseSVN开过:
安装不正确吗?don’t worry。上面是说TortoiseSVN是一个扩展外壳,意思就是TortoiseSVN是一个集成在Windows资源管理器上的。要想使用TortoiseSVN您仅需要在任一目录下右单击,然后就会出现TortoiseSVN的命令菜单。
OK,我们来看看怎样使用TortoiseSVN来创建版本仓库,这次我们在D:\tsvnrepo下建立版本仓库。
随后我们可以看到:
表示创建成功。打开tsvnrepo来看看,目录结构和之前看到的一模一样。
看来用TortoiseSVN给我们省了不少工夫。
签出版本库:
OK,在上面我们已经创建了我们自己的版本仓库,而且接触并使用了TortoiseSVN这个小工具,现在我们要做到事前就是从我们的版本库中签出我们想要的版本。
首先我们应该知道版本库的位置,在这里我们使用之前创建的tsvnrepo做为我们的版本库。然后我们还要把我们的版本库放在SVN服务器上,这样我们签出时实际上就是在访问SVN服务器,这里我们使用SVN自带的服务器svnserve,通常会选择Apache Server。
我们可以通过svnserve –i 或者使用svserve –d来启动svnserve。服务器启动后,客户端即可以通过绝对路径访问。如上例可以访问 svn://
服务器IP/etc/svn/repos
。同时可以指定一些选项,常用的如 -r
,用来指定版本库的根路径,例如假设版本库位于 /etc/svn/repos,我们就可以使用:svnserve –d –r /etc/svn 来启动一个根目录在svn下的版本库服务器。则客户端可以通过如下 URL 访问服务器:svn://
服务器IP/repos。
这样可以有效的避免暴露本地路径。
【如果在 Windows 操作系统下,可以将版本库设定在 C 分区,如 c:\svnroot\repos
可以通过 svn://
服务器IP/svnroot/repos访问
,如果在其他分区,就必须要通过 -r
选项来指定 root 位置。】
在这里我无法演示在局域网中的情况,只能在本地显示了。首先启动svnserve:
另外提醒一点:这个窗口不能关闭,关闭后svn服务器就shutdown掉了,这个你懂的。
现在假设我的工作区在D:\myworkspace 下,我想把版本库签出到这里,在签出时我们使用TortoiseSVN,在D:\myworkspace下右单击,然后:
单击OK,就从版本仓库中把所有的都签出了。当然我们之前的版本仓库中什么都没有,那么在D:\myworkspace下就看不到任何东西,或许你会发现,这个文件夹中多了一个隐藏对象,总是躲不过火眼金睛的我们啊。多了一个.svn的隐藏文件,不要乱动它,你懂的。
此时在D:\myworkspace下右单击,TortoiseSVN会给出不同的命令菜单里,这说明,现在的这个myworkspace已经不是之前的那么简单了。
签入到版本库
首先我们在D:\myworkspace下建立一个mydoc文件夹,然后在里面用java语言来写一个Helloworld程序。
现在我们要把mydoc签入到我们的版本库中,对mydoc右单击:
OK。这样就把mydoc里的所有内容添加到了我们本地的版本库中,注意此时并没有正式提交到版本库。
在此我们可以利用TortoiseSVN浏览一下我们的版本库来证明下:
填入版本库的URL,这里我使用的是本地。
对,就是什么都没有。
接下来我们对mydoc右单击:
在Message:中填入提交信息是个好习惯。
或许你这次并不是那么走运,你收获了异常:
OK? Don’t worry.这和SVN的配置管理有关,SVN认为这样并不安全,因为SVN并不知道这次操作是谁提交的,防止后面有人赖帐。
我们要先来配置版本库信息,还记得我们的版本库tsvnrepo吗?对,它下面有个conf。
OK,我们打开来看下:
就是这三个家伙导的鬼。我们先打开svnserve.conf来看看,来关注下第20行(此时你最好有属于你自己的文本编辑器):
OK,前面的 # 表示此行不起任何作用,可以理解为注释。现在把 # 去掉(注意password前不能有空格符)。然后我们在修改password文件。
在pasword文件中我们在下面添加一行,规则要和该文件中给定一致。像这样:
那么我么现在就有了lele这个用户,密码为lele。这样安全吗?No,No,No,后面我们会把它放到安全的mysql数据库中。
现在我们再倒回去提交一下,这次会要求我们提供用户名和密码。
输入我们定制的用户名和密码就可以提交成功了。
OK,提交成功了,我们可以再次浏览一下我们的版本库:
Good,这样就对了。
注意在新版本库中你可能未指定用户或密码,这时SVN会默认使用本地计算机的用户的账号和密码做默认。
好了本章节就到这里来,接下来章节我们来看在Eclipse怎样中使用SVN。
分享到:
相关推荐
**SVN(Subversion)简介** SVN,全称Subversion,是一款开源的版本控制系统,用于管理和跟踪项目源代码的变化。它允许多个开发者在同一个项目上协同...希望这个简易入门教程能帮助你快速上手,成为SVN的熟练使用者。
提升您的Subversion(SVN)体验,通过这个简易的中文语言包,将SVN客户端界面本地化为中文,使得中文用户能够更加便捷地进行版本控制操作。这个语言包是为了帮助非英语母语的开发者和项目管理者更舒适地使用SVN,...
SVN(Subversion)是一种版本控制系统,用于跟踪文件和目录的更改,以便在多人协作的环境中管理代码和其他项目资源。它允许团队成员同时编辑同一份文件,而不会导致数据丢失或冲突。SVN的核心理念是提供一个历史记录...
**SVNServer简易版介绍** SVNServer,全称Subversion Server,是Apache软件基金会开发的版本控制系统Subversion的一部分,用于实现集中式的版本控制服务。它允许用户在多个位置存储和跟踪文件及其变更历史,是软件...
### SVN服务器搭建简易教程 #### 一、环境与软件准备 **服务端操作系统:** Windows 2003 SP1 **客户端操作系统:** Windows XP SP3 **Subversion (SVN) 客户端:** TortoiseSVN 1. **下载并安装服务器软件:** - ...
【C#简易计算器(VS2010)】是一个基于Microsoft Visual Studio 2010开发的简单计算器项目。这个项目使用C#编程语言实现,为初学者提供了一个理解基础编程概念,如变量、运算符、控制流程以及GUI设计的机会。 在C#...
- **SVN**(Subversion)是一种广泛使用的版本控制系统,主要用于软件开发中的代码管理。它支持多用户协作,并能有效追踪代码的历史变更记录,便于团队成员之间的协同工作。 - **TortoiseSVN**是一款针对Windows...
通过这份"SVN使用手册(简易版)",你可以了解到SVN的基本操作和概念,从而更有效地进行团队协作。对于初学者来说,这是一个很好的起点,帮助他们快速融入SVN的工作流程。记住,实践是掌握任何工具的关键,所以尽快...
这些文件夹在日常开发中通常是隐藏的,对于非开发者或者不使用Subversion的用户来说,它们可能是不必要的,并可能占用磁盘空间。 描述中提到的博文链接指向了一个ITeye博客文章,虽然描述为空,但我们可以推测博主...
**项目级SVN简易安装手册** SVN(Subversion)是一种版本控制系统,广泛应用于软件开发中,用于跟踪和管理源代码的变化。它允许团队成员协作编辑和管理文件,确保代码的一致性和完整性。本手册将指导您完成项目级...
6. 版本控制:Fmms_Svn-main可能指的是使用Subversion(SVN)进行版本控制,这是一种软件工具,用于跟踪代码更改,便于团队协作开发。每个开发者可以在本地修改代码,然后通过SVN将改动合并到主分支,避免冲突并保持...
【SVN 使用方法新手入门】 SVN,全称 Subversion,是一种版本控制系统,用于跟踪文件和目录的修改历史,便于团队协作和版本管理。本文主要介绍如何使用 SVN 的客户端工具 TortoiseSVN 进行基本操作。 ### 一、...
最后,"Popms_Svn-main"这个文件名可能是源代码版本控制的组成部分,可能代表了使用Subversion(SVN)作为版本控制系统。SVN帮助开发者跟踪和管理代码变更,使得团队协作更为顺畅。 总的来说,这个人口管理系统简易...
这个“简易版arcgis”可能是通过DotSpatial库创建的一个简化版GIS应用。 在提供的文件列表中,我们看到以下几个关键项: 1. `.gitignore`:这是一个版本控制系统Git的配置文件,用于指定应该忽略的文件或目录。在...
**Java代码管理工具SVN简易操作说明** 在软件开发过程中,代码管理是非常关键的一环,它确保了团队成员之间的协作高效、代码版本控制有序。Subversion(简称SVN)是广泛应用的一种集中式版本控制系统,特别适合Java...
标题中的“行动:一个会议工具包(Subversion存储库的Git转换)”指的是将一个使用Subversion(简称SVN)版本控制系统管理的项目转换到使用Git版本控制系统的过程。这是一个常见的需求,因为Git在现代软件开发中...