文档库 最新最全的文档下载
当前位置:文档库 › SVN版本控制工具介绍报告

SVN版本控制工具介绍报告

SVN版本控制工具介绍报告
SVN版本控制工具介绍报告

SVN版本控制工具介绍Version history

SVN版本控制工具介绍 (1)

Version history (1)

目录 (2)

前言 (3)

术语 (4)

1. SVN简介 (4)

1.1 SVN的历史 (4)

1.2 SVN的特点 (5)

1.3 SVN Client图形化软件 (6)

1.4 其它版本控制工具,VSS,CVS,GIT (6)

2. SVN server,VisualSVN-Server (7)

2.1 下载安装VisualSVN-Server (7)

2.2 配置VisualSVN-Server (8)

2.2.1 创建资料库 (8)

2.2.2 配置用户访问权限 (10)

3. SVN client,TortoiseSVN和Linux中的SVN命令。 (12)

3.1 下载TortoiseSVN (12)

3.2 TortoiseSVN的基本操作 (12)

3.3 Ubuntu 10.04,svn命令 (17)

4. SVN版本控制过程 (18)

4.1 Linux kernel开发环境 (18)

4.2 SVN版本控制基本流程 (18)

4.2.1 SVN server side (18)

4.2.2 SVN client side (18)

4. 3 SVN高级主题 (22)

5. 参考资料 (23)

版本控制(Revision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。

本文档介绍了SVN server、client的安装,配置,和使用。

SVN server使用Windows版本,VisualSVN-Server-1.7.2.msi。

SVN client使用Windows版本,TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi,和Ubuntu Linux 32-bit,svn, version 1.6.6 (r40053)。

读者可以根据需要下载最新的稳定版本。

基线(Baseline)

基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。档案库(Repository)

存储档案的新版本还有历史资料的地方,通常是在服务器上。有时候也叫Depot(像是在SVK、AccuRev还有Perforce中)

工作版本(Working copy):从档案库中取出一个本地端(客户端)的复制,针对一个特定的时间或是版本。所有在档案库中的档案更动,都是从一个工作版本中修改而来的,这也是这名称的由来。观念上,这是一个沙盒。

提交(Commit)

将本地端的修改送回档案库。(由版本控制软件处理“跟上次更动相比,哪个档案又被更动”的事)

变更(Change)

对一份文件作的特定更动。

变更记录(Change List)

取出(Check-Out)

从档案库取出档案到本地端(客户端)。

更新(Update)

将档案库的修改送到本地端(与送交相反)。

合并(Merge / Integration)

合并各个改变。

版次(Revision)

一个revision或version指的是一系列版本变迁的其中之一。

汇入(Import)

汇出(Export)

冲突(Conflict)

当两方更动同一份文件会发生冲突。

1. SVN简介

1.1 SVN的历史

Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

在2000年初,开发人员要写一个CVS的自由软件代替品,它保留CVS的基本思想,但没有它的错误和局限。

2000年2月,他们联系了Open Source Development with CVS(Coriolis, 1999)的作者Karl Fogel,问他是否愿意为这个新专案工作。巧的是这时Karl已经在和他的朋友Jim Blandy讨

论一个新的版本控制系统的设计。在1995年,两人开了一家提供CVS技术支持的公司,叫作Cyclic Software。虽然公司已经卖掉了,他们仍然在日常工作中使用CVS。在使用CVS 时受到的束缚已经让Jim开始仔细思考管理版本化数据的更好的路子。他不仅已经起好了名字“Subversion”,而且有了Subvesion资料库的基本设计。当CollabNet打来电话时,Karl 立刻同意为这个专案工作。Jim征得他的老板RedHat Software的同意,让他投入这个专案,而且没有时间限制。CollabNet雇用了Karl和Ben Collins-Sussman,从5月份开始详细设计。由于Greg Stein和CollabNet的Brian Behlendorf和Jason Robbins作了恰当的推动,Subversion 很快吸引了一个活跃的开发人员社区。这说明了许多人有相同的受制于CVS的经验,他们对终于有机会对它做点什么表示欢迎。

最初的设计团队设定了几个简单的目标。他们并不想在版本控制方法论上有新突破。他们只想修补CVS。他们决定Subversion应该与CVS相似,保留相同的开发模型,但不复制CVS 最明显的缺点。虽然它不一定是CVS的完全的替代品,它应该和CVS足够象,从而任何CVS用户可以不费什么力气的转换过来。

经过14个月的编码,在2001年8月31号,Subversion可以“自我寄生”了。就是说,Subversion 开发人员停止使用CVS管理Subversion的源代码,开始使用Subversion代替。

虽然CollabNet发起了这个项目,而且仍然支助一大部分的工作(它为一些专职的Subversion 开发人员发薪水)。但是Subversion像大部分开放源码的项目一样运作,由一个松散透明,鼓励能者多劳的规则管理。CollabNet的版权许可证和Debian FSG完全兼容。换句话说,任何人可以免费下载,修改,按自己的意愿重新分发Subversion,而不必得到来自CollabNet 或其他任何人的许可。

2009年11月,Subversion被Apache Incubator专案所接收。

2010年1月,正式成为Apache软件基金会的一个顶级专案。

1.2 SVN的特点

SVN的特性:

* 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。

* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。

* 重命名、复制、删除文件等动作都保存在版本历史记录当中。

* 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)

* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。

* 分支的开销非常小。

* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不

必要的和数据库主机之间的网络流量。

* 支持元数据(Metadata)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。

* 支持FSFS和Berkeley DB两种资料库格式。

SVN的不足

* 只能设置目录的访问权限,无法设置单个文件的访问权限。(目前可以通过辅助模块比如wandisco access control实现单文件访问)

* 数据库为二进制格式,无法方便的利用其它软件读取数据库的内容。

1.3 SVN Client图形化软件

TortoiseSVN

在windows非常受到欢迎的一套Client软件,与资源管理器集成得相当不错,可以通过资源管理器在文件或目录上用鼠标右键的菜单完成SVN的操作。TortoiseSVN官方站点Ankhsvn

将subversion的操作集成进Visual Studio的SVN Client软件。Ankhsvn官方站点Subclipse

将Subversion的操作集成进Eclipse的SVN Client软件。Subclipse官方站点

Subversive

和Subclipse相同Subversive官方站点

SCPlugin

Mac OS下类似TortoiseSVN的软件SCPlugin官方站点

SVNx

Mac OS X下的一款Client软件SVNx官方站点

eSVN

Unix下类似TortoiseSVN的软件eSVN官方站点

kdesvn

Linux下使用KDE桌面管理下类似TortoiseSVN的软件kdesvn官方站点

RabbitVCS

Linux下使用Gnome桌面管理下类似TortoiseSVN的软件RabbitVCS官方站点

1.4 其它版本控制工具,VSS,CVS,GIT

VSS

Microsoft Visual SourceSafe是美国微软公司出品的版本控制系统,简称VSS。

软件支持Windows系统所支持的所有文件格式,兼容Check out-Modify-Check in(独占工作模式)与Copy-Modify-Merge(并行工作模式)。VSS通常与微软公司的Visual Studio产品同时发布,并且高度集成。VSS使用文件系统作为存储方式,每次版本变更时就需要大量地读写硬盘。这也是VSS最广受垢弊的缺点。快速大量的信息交换的需要,使得VSS仅适用于快速本地网络,而无法实现基于Web的快速操作,尽管一个妥协的办法是可以通过慢速的VPN。VSS2005 拥有Web访问功能,不再与Visual Studio同时发布。为了实现VSS 的远程和跨平台访问,微软推荐VSS用户使用第三方工具,例如SourceAnywhere for VSS。在Visual Studio2008 Team System 中集成了另外一个叫做Team Foundation Server的项目生

命期管理工具。VSS未来将面向独立开发者和小型开发团队。

VSS虽然是微软公司的产品,但微软内部却很少使用它。微软内部使用一个名为SLM的版本控制系统,直至1999年。之后,微软内部改以使用修改自Perforce的SourceDepot。

CVS

CVS(Concurrent Versions System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。

很多开源或者自由软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括:Gnome、KDE、GIMP、Wine等。CVS的使用获GNU通用公共许可证授权。

这是一个将一组文件放在层次目录树中以保持同步的系统。人们可以从CVS服务器上更新他们的本地层次树副本,并将修改的结果或新文件发回;或者删除旧文件。

CVS基于客户端/服务器结构(C/S)的行为使得其可容纳多用户,构成网络也很方便。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。

GIT

Git是一个由林纳斯·托瓦兹(Linus Benedict Torvalds)为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。需要注意的是和GNU Interactive Tools,一个类似Norton Commander界面的文件管理器相区分。

Git最初的开发动力来自于BitKeeper和Monotone。Git最初只是作为一个可以被其他前端比如Cogito或StGIT包装的后端而开发的。不过,后来Git内核已经成熟到可以独立地用作版本控制。很多有名的软件都使用Git来进行版本控制,其中有Linux内核、https://www.wendangku.net/doc/db6601766.html,服务器和OLPC内核开发。

林纳斯·托瓦兹自嘲地取了这个名字"git"。在英式英语中指一个愚笨或者不开心的人。

“ I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git. ”

2. SVN server,VisualSVN-Server

2.1 下载安装VisualSVN-Server

官方网站:https://www.wendangku.net/doc/db6601766.html,/server/

最新版本是Version 2.5.5。

System Requirements

Operating Systems

* Windows XP

* Windows Server 2003

* Windows Vista

* Windows Server 2008

* Windows Server 2008 R2

* Windows 7

Minimum hardware

* Pentium 500MHz or greater

* 128 MB RAM or greater

* 30 MB hard drive space

2.2 配置VisualSVN-Server VisualSVN-Server的启动界面(图2-1)。

图2-1

2.2.1 创建资料库

右击Repositories,弹出下面的对话框(图2-2)。

图2-2

资料库名称是“Eyesight_SoC”,勾选“Create default structure(trunk, branches, tags)”,点击“OK”,即创建成功(图2-3)。

图2-3

同样,通过快捷菜单,在”trunk”目录下创建相应的子目录“project”、“kernel”、“rootfs”、“app”、“u-boot”、“doc”来归类源代码、文档、项目管理。规划的项目管理流程中,有一个配置管理计划文档(图2-4)。

图2-4

2.2.2 配置用户访问权限

可以针对组和单个用户进行管理。

同一组可以给于不同的权限,每个用户也可以配置成不同的权限。

创建用户,通过快捷菜单(图2-5),输入用户名和口令,点击OK。

图2-5

创建组,通过快捷菜单(图2-6),输入用组名,添加组成员,点击OK。

图2-6

创建组app(图2-7)。

图2-7

针对目录,配置访问权限:不可访问,只读,可读可写。

例如,针对project目录,配置project组的可读可写权限(图2-8)。

图2-8

3. SVN client,TortoiseSVN和Linux中的SVN命令。

3.1 下载TortoiseSVN

官方网站:https://www.wendangku.net/doc/db6601766.html,/downloads.html

The current version is 1.7.7。

3.2 TortoiseSVN的基本操作

访问SVN server中的资料库(图3-1)。

图3-1

输入帐号和口令登录后(图3-2)。

图3-2 通过快捷菜单,弹出操作菜单(图3-3):

图3-3

Show log: 显示日志。

Revision graph: 修订版本图。

Export: 导出资料库,不做版本控制。

Checkout: 签出资料库,做版本控制。

同时,在Windows的资源管理器中,自动加下SVN的快捷菜单(图3-4)。

图3-4

如果对已加入SVN版本控制的目录右击,弹出的快捷菜单(图3-5)。

图3-5

对加入SVN版本控制的单个文件,快捷菜单(图3-6)。

图3-6

可以对当前的工作版本和SVN库里的版本进行比较,例如Linux kernel的.config配置文件(图3-7)。

图3-7

3.3 Ubuntu 10.04,svn命令

安装svn client命令:

# apt-get install subversion

svn帮助命令:

#svn help

usage: svn [options] [args]

Subversion command-line client, version 1.6.6.

Type 'svn help ' for help on a specific subcommand. Type 'svn --version' to see the program version and RA modules

or 'svn --version --quiet' to see just the version number.

Most subcommands take file and/or directory arguments, recursing on the directories. If no arguments are supplied to such a command, it recurses on the current directory (inclusive) by default.

Available subcommands:

add

blame (praise, annotate, ann)

cat

changelist (cl)

checkout (co)

cleanup

commit (ci)

copy (cp)

delete (del, remove, rm)

diff (di)

export

help (?, h)

import

info

list (ls)

lock

log

merge

mergeinfo

mkdir

move (mv, rename, ren)

propdel (pdel, pd)

propedit (pedit, pe)

propget (pget, pg)

proplist (plist, pl)

propset (pset, ps)

resolve

resolved

revert

status (stat, st)

switch (sw)

unlock

update (up)

Subversion is a tool for version control.

For additional information, see https://www.wendangku.net/doc/db6601766.html,/

4. SVN版本控制过程

4.1 Linux kernel开发环境

因为我习惯在Windows xp中安装VMware,在VMware中安装Linux(这里使用Ubuntu 10.04), Ubuntu中安装ssh, samba, nfs, tftp服务。

tftp、nfs用于方便开发调试。

samba用于Windows和Linux之间的文件共享,在Windows上映射网络驱动器。

在Windows xp上使用Source insight来做Linux kernel开发,个人认为这是最好的方法。

用Putty, winscp, SecuCRT通过ssh 登录到Linux上编译。

所以SVN Server安装在Windows上。

Tips:Linux 上支持链接文件,通过Samba共享,Windows不支持链接文件,所以对Linux kernel源代码目录树,一定要用Linux上的svn命令进行版本控制,否则会编译出错(没有深入研究,我认为是链接文件的原因)。

4.2 SVN版本控制基本流程

4.2.1 SVN server side

建立好资料库,配置好资料库目录,用户名,组,各个组或者用户的访问权限。

操作过程见2.2节。

4.2.2 SVN client side

把源代码或者文档导入到SVN server

#svn import ./ Eyesight_SoC ‘https://10.0.0.159:8443/svn/Eyesight_SoC’–m “init”

说明:

svn import:svn导入命令

./ Eyesight_SoC:目录名称

‘https://10.0.0.159:8443/svn/Eyesight_SoC’:svn server资料库地址

-m “init”: 日志内容

checkout到本地工作目录

#svn checkout ‘https://10.0.0.159:8443/svn/Eyesight_SoC’ ./

说明:

svn checkout:svn 签出命令。

‘https://10.0.0.159:8443/svn/Eyesight_SoC’:svn server地址。

./:当前目录。

查看svn版本控制信息:

root@wenxy-desktop:/home/wenxy/src/Xilinx/kernel/linux-2.6.35.3# svn info Path: .

URL: https://10.0.0.62:8443/svn/wenxy/trunk/kernel/linux-2.6.35.3

Repository Root: https://10.0.0.62:8443/svn/wenxy

Repository UUID: 28bcbc35-b5f1-a44b-91de-c8eadf4cf8d3

Revision: 109

Node Kind: directory

Schedule: normal

Last Changed Author: wenxy

Last Changed Rev: 109

Last Changed Date: 2012-07-10 14:44:53 +0800 (Tue, 10 Jul 2012)

查看工作版本和资料库的变化:

root@wenxy-desktop:/home/wenxy/src/Xilinx/kernel/linux-2.6.35.3# svn st|grep M M .config.old

M .version

? arch/arm/plat-mxc/sdma/iapi/src/.iapiMiddleMcu.o.cmd

? arch/arm/plat-mxc/sdma/iapi/src/.iapiLowMcu.o.cmd

? arch/arm/plat-mxc/sdma/iapi/src/.iapiMiddle.o.cmd

M .config

M include/generated/utsrelease.h

M include/generated/autoconf.h

M include/generated/compile.h

M include/config/kernel.release

M include/config/auto.conf

M include/config/tristate.conf

M Module.symvers

M make.log

? drivers/sbc1651/Module.symvers

root@wenxy-desktop:/home/wenxy/src/Xilin

说明:

M表示修改过的文件。

?表示新增加的文件,还没有加入版本控制,先用svn add命令加入相应的文件,然后用svncommit 命令提交对应的文件。如果要对整个工程目录做提交前,一定要先svn up同步更新下,已防止多人共同修改过同一个文件而冲突。

向资料库新增加文件或者目录

#svn add file-name or directory

#svn commit file-name or directory –m “your comment”

如果放弃本地修改的文件,恢复到上一个版本

#rm file-name

#svn up

或者

#svn revert file-name

提交修改的文件或者目录

#svn commit file1 file2 directory –m “title: modification”

警告:提交到资料库中,至少要保证源代码能编译通过!这是最基本的原则,并且要加上简洁明了的注释,例如–m “I2C driver: fix up bug 12: kernel oops”。

版本比较

#svn diff file-name

例如:

root@wenxy-desktop:/home/wenxy/src/Xilinx/kernel/linux-2.6.35.3# svn diff .config

Index: .config

===================================================================

--- .config (revision 109)

+++ .config (working copy)

@@ -1,7 +1,7 @@

#

# Automatically generated make config: don't edit

# Linux kernel version: 2.6.35.3

-# Wed Mar 7 12:33:26 2012

+# Thu Aug 2 10:30:34 2012

#

CONFIG_ARM=y

CONFIG_HAVE_PWM=y

@@ -79,6 +79,7 @@

CONFIG_UID16=y

CONFIG_SYSCTL_SYSCALL=y

CONFIG_KALLSYMS=y

+# CONFIG_KALLSYMS_ALL is not set

# CONFIG_KALLSYMS_EXTRA_PASS is not set

CONFIG_HOTPLUG=y

CONFIG_PRINTK=y

svn版本控制工具

第1节背景及svn简介 svn是subversion 缩写,它是一个自由、开放源码、多用户的版本控制系统, 支持通过本地或远程访问数据库和文件系统存储库。Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。许多人会把版本控制系統想像成某种“时光机器”。 版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。 SVN 不但提供了常见的比较、合并、标记、提交和分支功能,SVN 还增加了追踪移动和删除的能力。此外,它还支持非ASC Ⅱ文本和二进制数据、原子性提交、HTTP 访问等特性,当SVN 被广泛使用时,也需要有个管理工具能够更方便安全地维护SVN 的用户、组、权限、库等内容,协助普通用户更好地配置管理SVN,而无需都交由可能比较繁忙的系统管理员维护。而基于Web 的Subversion 管理工具将是一种非常适合的选择。SVN 可以支持windows 和Linux 两种操作系统,在两种操作系统上运行都具有稳定性和安全性。

SVN 在设计上包括了一个抽象的网络层,这意味着SVN 的版本库可以通过各种服务器进行访问,而允许程序员为客户端“版本库访问”的API 写出先关协议的插件,理论上讲,SVN 可以使用无限数量的网络协议,目前提供了有两种服务器运行方式:一种是Subversion Standalone Server。即svnserve,一个小型的独立服务器,另一种是基于Apache Http Server,即Web 服务器,它通过mod_dav_svn 模块,客户端使用WebDAV/DeltaV 协议进行访问。 SVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。 SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。 SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的

svn命令大全

svn命令通常都有帮助,可通过如下方式查询: $ svn help 知道了子命令,但是不知道子命令的用法,还可以查询: $ svn help add 开发人员常用命令 (1) 导入项目 $ cd ~/project $ mkdir -p svntest/{trunk,branches,tags} $ svn import svntest https://localhost/test/svntest --message "Start project" ... $ rm -rf svntest 我们新建一个项目svntest,在该项目下新建三个子目录:trunk,开发主干;branches,开发分支;tags,开发阶段性标签。然后导入到版本库test下,然后把svntest拿掉。 (2) 导出项目 $ svn checkout https://localhost/test/svntest/trunk 修订版本号的指定方式是每个开发人员必须了解的,以下是几个参考例子,说明可参考svn推荐书。 $ svn diff --revision PREV:COMMITTED foo.c # shows the last change committed to foo.c $ svn log --revision HEAD # shows log message for the latest repository commit $ svn diff --revision HEAD # compares your working file (with local changes) to the latest version # in the repository $ svn diff --revision BASE:HEAD foo.c # compares your “pristine” foo.c (no local changes) with the # latest version in the repository

SVN使用手册(最全版)

SVN环境搭建及使用手册 一、SVN介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 二、SVN安装包介绍(安装包存放在服务器上D:\安装包\SVN) 服务端:SVN服务端安装包是VisualSVN-Server-3.6.0-x64.msi。 客户端:客户端软件主要包括下列3个文件 1. TortoiseSVN-1.8.8.25755-x64-svn-1.8.10.msi ----SVN客户端安装包 2. LanguagePack_1.9.5.27581-x64-zh_CN.msi ----SVN客户端语言包 3. AnkhSvn-2.5.12471.17.msi -----SVN针对Visual Studio的插件 三、搭建SVN服务端详细说明 第一步:搭建SVN团队项目、在服务器上打开已安装的SVN服务端、新建一个项目文件夹、创建完成后、右键项目复制项目URL 具体如下图

第二步:创建SVN用户、及设置密码、如下图 第三步:SVN服务端创建项目完成及创建用户后、使用SVN客户端将程序代码等文件提交上去、选中需要提交的程序文件、并填写正确SVN服务端项目的URL地址、

四、在日常开发中使用SVN的常用操作主要有:签出程序、文件合并、代码文件撤销、版本回滚、及历史版本控制等 说明:使用SVN版本控制,必须遵循4个原则。 1.新建文件前获取最新的程序代码、新建文件后先提交文件、再进行详细开发或编辑。 2.尽量避免多人同时处理同一个文件(svn毕竟不是那么优秀、无法智能将代码成功合并)。 3.项目成员提交程序前、必须获取最新的程序、编译且没问题、再进行提交操作。 4.提交代码必须选择解决方案进行代码提交、请勿选择其中某项目进行提交。 (1)签出最新程序:选择解决方案右键--》Update Solution to Latest Version, 如下图 (2)代码文件合并:如svn上的文件与本地文件产生冲突、则会在Pending Changes 中高亮显示、双击文件打开双方文件差异、合并完成后、点击Commit进行合并后文件提交。如下图

利用SVN对软件项目进行版本控制管理_闫晗

TECHNOLOGY TREND [摘要]在中小规模软件项目的开发过程中,通常由多人分工、共同完成,这就涉及到大量的源代码和文档。即使在沟通充分情况下,多 人维护同一份源代码也会出现混乱情况,如何对这些源代码和文档进行有效版本管理,并进行最终整合,是软件项目能否成功的关键之一。[关键词]版本控制;SVN VisualSVN ;Server ;TortoiseSVN 利用SVN 对软件项目进行版本控制管理 闫晗 (天津港信息技术发展有限公司,天津市 300000) 在中小规模软件项目的开发过程中,通常由多人分工、共同完成,这就涉及到大量的源代码和文档。即使在沟通充分的情况下,多人维护同一份源代码也会出现混乱的情况,如何对这些源代码和文档进行有效的版本管理,并进行最终整合,是软件项目能否成功的关键之一!本文简要介绍一套Windows 操作系统下利用免费、开源软件构建的高效、可靠的SVN 版本管理系统及其日常备份方法。 1SVN 简介SVN (Subversion )是一种版本管理系统,其前身是CVS (Con-currentVersions System ),它是根据CVS 的功能为基础来设计的,它除包括了CVS 的大多数特点外,还有一些新的功能:文件目录可以方便的改名、基于数据库的版本库、操作速度提升、权限管理更完善等。 SVN 通过对不同项目建立各自独立的版本库进行管理,每个版本库很像一个基于数据库的文件服务器,可以记录每一次文件和目录的修改内容,这使得用户可以取得文件以前的版本,检查所做的任何更改。SVN 采用HTTP 方式访问版本库,从而使用户可以在不同的电脑上获得(CheckOut )项目文件,经修改后再提交(Import )到SVN 服务器。另外,SVN 允许多个用户对同一份文件进行修改,当提交(Im-port )到SVN 服务器时会自动对该文件的不同用户版本进行融合(Merge )。当融合过程中有冲突(Conflict )发生时,SVN 会给出提示信息,用户可以借助SVN 的文档比较功能来解决冲突。 借助SVN 的版本管理,所有开发人员的项目文件都可被同步更新,因而开发工作可能变得非常顺利。文章所介绍的SVN 版本管理系统主要用到VisualSVN Server 和TortoiseSVN 这两个软件,VisualSVN Server 是一款图形化的SVN 服务器软件,提供Subversion 、Apache 服务器(提供HTTP 服务)和用户及权限管理等功能;TortoiseSVN 作为一款SVN 客户端软件,通过将功能项目嵌入到资源管理器的右键菜单,并借助其强大的图形化操作方式为用户提供方便快捷的SVN 服务。读者可以在https://www.wendangku.net/doc/db6601766.html, 和https://www.wendangku.net/doc/db6601766.html,/免费下载到这两个软件的最新版本。 2SVN 系统配置和使用2.1服务器端 在服务器安装端VisualSVN Server 的过程中,需要填写一个HTTP 服务端口号,如要采用安全连接,可勾选“Use secure connec-tion(https://)”选项,其他部分采用默认设置即可。 VisualSVN Server 中主要包括版本库(Repositories )、用户( Users )和组(Groups )三部分,通过各自上下文菜单可以新建版本库、用户和组。通过版本库的上下文菜单“Properties ”可以设置其访问用户和权限,同时其HTTP 访问地址也可通过右键菜单“CopyUrlto Clipboard ”拷贝至剪贴板,例如:http://192.168.0.55:8888/svn/a-jsys/。至此,一个新版本库建立完成,非常高效、便捷! 2.2客户端 安装过程无需太多配置,安装完成并需要重新启动后,资源管理器的右键菜单会增加多个TortoiseSVN 项目。 接下来向SVN 服务器中导入项目,项目结构可以按照“项目源码”、“项目文档”等进行分类以方便管理。在项目文件夹上点击右键并选择“Import ”菜单,在弹出的对话框中的“URLofrepository ”中填入刚才拷贝的URL 地址并点击OK ,在填入用户名和密码后,即可开始将项目导入SVN 服务器。 在导入完成后,还需要对刚才导入的项目通过右键上下文菜单“SVNCheckout ”检出,以后在该文件夹中对文件所进行的新增、修改、删除等操作都将被SVN 记录。 被纳入SVN 管理的文件夹和文件图标会根据不同状态发生改变,常见的有:“绿色√”表示没有被本地修改过;“红色!”表示被本地修改过;“黄色!”表示和服务器上版本存在冲突且无法自动融合;“蓝色?”表示该文件或文件夹为新增,不受版本控制,可以在提交对话框中选择是否提交到SVN 服务器。 在检出后的项目文件夹上点击右键,我们会发现新增了许多Tor-toiseSVN 菜单项,下面对常用的几个菜单进行介绍: SVNUpdate-更新,使本地项目文件与SVN 服务器进行同步。 SVNCommit-提交,提交本地修改后的项目文件至SVN 服务器,以便其他项目成员进行同步更新。 Revert-还原,可以将指定文件或文件夹还原至服务器最新版本。Show Diff-显示不同,该功能十分有用,主要用于本地版本与服务器版本存在冲突时进行对比。 通过以上的简单操作,我们已经构建起一套完整的SVN 版本控制系统,完全可以胜任中小规模软件开发的版本控制管理。SVN 服务器中存储着各个项目的版本库数据,因此也要做好这些数据的日常备份。 3SVN 服务器备份 VisualSVNServer 在数据备份方面提供了一条svnadmin 命令,借助批处理程序并结合Windows 系统的“任务计划”功能对版本库数据进行备份。 备份过程主要涉及到2个文件:backup.bat 和backupcmd.bat 1)backup.bat 文件作为主程序,其主要内容为:@echooff setSVN_HOME="C:\Program Files\VisualSVNServer"setSVN_ROOT=E:\Repositories setBACKUP_SVN_ROOT=E:\svnrootbak setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT %\%date ~0,10%、 ifexist%BACKUP_DIRECTORY %gotocheck mkdir%BACKUP_DIRECTORY % for/r%SVN_ROOT %%%Iin(.)do@ifexist"%%I\conf\svnserve conf"call%BACKUP_SVN_ROOT %\backupcmd.bat"%%~fI"%%~nI end 2)backupcmd.bat 文件作为副程序被backup.bat 调用,其内容 为: @%SVN_HOME%\bin\svnadmin hotcopy%1%BACKUP_DI-RECTORY %\%2 本例中,在SVN 服务器分区E 下建立文件夹svnrootbak ,并将上 述三个文件拷贝至该文件夹下,通过Windows 的任务计划功能设定在每天特定时间执行backup.bat ,即可实现无人职守的版本库备份。 在中小规模软件项目的开发过程中,为了进行有效的协同开发而进行版本控制是一个基本要求。近两年,基于开源的SVN 构建的版本控制系统逐渐成为对软件项目开发进行版本控制的首选。但版本控制不只局限于软件开发领域,在档案管理、信息管理等领域也可得到应用。 应用科技 59

使用SVN命令行工具

使用SVN命令行工具 如果你不知道命令怎么用svn命令,可通过如下方式查询:svn help知道了子命令,但是不知道子命令的用法,还可以查询:svn help ci 开发人员常用命令导入项目svn import https://www.wendangku.net/doc/db6601766.html,:82/pthread --message "Start project"导出项目svn checkout https://www.wendangku.net/doc/db6601766.html,:82/pthread采用export 的方式来导出一份“干净”的项目svn export https://www.wendangku.net/doc/db6601766.html,:82/pthread pthread为失败的事务清场svn cleanup在本地进行代码修改,检查修改状态svn status -vsvn diff更新(update)服务器数据到本地svn update directorysvn update file增加(add)本地数据到服务器svn add file.csvn add dir对文件进行改名和删除svn mv b.c bb.csvn rm d.c提交(commit)本地文档到服务器svn commitsvn cisvn ci -m "commit"查看日志svn log directorysvn log file相关的一些东西:1、在本地文件中,每个目录下都有一个.svn文件夹(属性为隐藏),保存了相关的信息。2、注册环境变量SVN_EDITOR为"E:\Program Files\Vim\vim71\gvim.exe",结果在svn ci的时候,出现错误:'E:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。svn: 提交失败(细节如下):svn:

SVN命令使用手册

SVN命令使用手册修改版本记录 M:修改A:添加D:删除

SVN命令使用 一、常用命令 1.Svnadmin create创建库 svnadmin create path 在windows版本上: D:\>svnadmin create test2 D:\> 通过dir来列出目录中文件,已经包含test2,如图1所示: 图1 说明此时已经成功建立 2.Svn import导入项目 svn import project_path svn_lib_path -m “comment” 举例: 假设有一个工程名称unismg,代码的文件目录是unicom; A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示: 图2

trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。 B、我们将代码unicom放到d:\unismg\trunk\中 C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg" 结果如图3所示: 图3 这样我们就将工程代码导入svn库中管理。此时删除D:\>unismg目录也没有关系,因为你的源代码已经在SVN库中管理了。 有人会有疑问,为什么我到test2目录中去找*.c文件怎么一个没有找到啊,是的SVN 管理代码,并不是简单的保存文件,而是利用bdb管理的,所以你看不到源码存在。 之后你可以使用后续的命令来工作了。 多说一句,关于svn_lib_path的几种形式: file:///直接版本访问(本地磁盘) http://通过配置subversion的Apache服务器的WebDAV协议 https://与http://相似,只不过增加了ssh协议 Svn://通过svnserver服务自定义的协议 Svn+ssh://与svn://相似,但是通过SSH协议封装 比如,联通在信网关在30.251linux服务器上,使用的是svnserver服务自定义的协议,那么,导入工程代码时应采用的命令是: svn import $path/proj/unismg svn://192.168.30.251:3482-m "initial import unismg" 3.Svn co: 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 举例: svn co svn://192.168.30.251:3482/trunk/unicom 下面信息就是从库中下载的代码信息。

项目管理版本控制SVN实践教程

针对原文做了两个修改,见文中【修改】部分,不然不能正确配置服务器,并且添加了一些注释(flywen 2010-9-28) 原文出处: https://www.wendangku.net/doc/db6601766.html,/ttzhang/archive/2008/11/03/1325102.html https://www.wendangku.net/doc/db6601766.html,/ttzhang/archive/2008/11/04/1325940.html 文章版权归原作者Forrest Zhang所有。 一、VisualSVN Server的配置和使用方法【服务器端】 1.1 VisualSVN Server的安装 最新版本是1.6.1,你可以在这里下载: https://www.wendangku.net/doc/db6601766.html,/files/VisualSVN-Server-1.6.1.msi VisualSVN Server,最新更新版本是1.6.2,你可以在这里下载: https://www.wendangku.net/doc/db6601766.html,/files/VisualSVN-Server-1.6.2.msi VisualSVN Server Documentation下载: https://www.wendangku.net/doc/db6601766.html,/server/doc/VisualSVN-Server.pdf 下载后,运行VisualSVN-Serv er-1.6.1.msi程序,点击Next,下面的截图顺序即为安装步骤: 图1:

图2: 注意:Server Port那里,默认端口有80/81/8080三个;如果最后面的CheckBox被选中,则表示使用安全连接【https协议】,这是的端口只有433/8433二个可用。Location 是服务器端的安装位置,Repositories是代码仓库,这里保留一份总的代码,别人的需要从中check out代码,修改后再commit回这个仓库 图3:

svn常用命令详解

一.SVN导出(check out 和export的区别) 1.check out跟check in对应,export跟import对应; 2.check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关 联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 3.export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行 Update和Commit操作。导出文件夹下没有.svn目录。 二.linux下svn命令大全 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N][--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“[--force] PATH 例如:svn lock -m “lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改

SVN版本控制系统中文版资料

版本控制系统(集中模式) (1) 版本控制系统指南 (5) 软件发行版本指南 (21) 版本控制系统(集中模式) 库与工作桌面的比较 工作桌面: 开发人员可以在本地修改维护源代码和版本控制系统中的文档。 库: 源代码的存储和修改记录集中在服务器上的版本控制系统中。 TortoiseSVN(小乌龟系统)介绍 1.文件描述 2.Windows资源管理器扩展。

版本控制系统核心操作 1.(检测) 2.(提交) 3.(更新) 4.(导入) 5.(导出) (检测)介绍 1.从库和存储在本地的版本控制系统中获取一个工作副本。 2.一次性操作 3.检测工作副本来源 4.本步骤应是第一步操作。

in sync(同步)

(提交)介绍 1.同步本地文件夹和库中的文件。 2.本地文件修改包括:文档和源代码的修改、删除和添加操作。 (提交)注意事项 1.应该一次性提交概念、功能和任务文件。 2.应该要确保提交的文件可以被成功编译。 3.将更改日志加入体骄傲信息中。

版本控制系统指南 1.工作区的所有文件夹和文件的图标都应该有一个标志来表明他们在资源管理器中的地位。 2.'.svn'文件夹保存版本信息。 版本控制系统修订编号 1.修订数字不仅表示本地工作区中的版本号也表示存储库的版本号。 2."HEAD"表示最新版本。 修改日志消息 修改版本跟踪: 1.修订版本号 2.作者 3.版本信息 4.修改的文件

(更新)介绍 1.从资源库中的修改更新到本地工作副本 2.同步存储库工作区;在同步时应该注意可能会发生冲突,版本控制系统可能会提示限制。

svn 常见报错

常见错误提示: 1:?.? is not a working copy. Can?t open file ….svn/entries?:系统找不到指定的路径。 原因是输入的访问路径不正确,如svn://192.168.6.200/如果最后少写了“/”,就会出现这种错误提示。 2:将文件checkout之后,没有出现SVN的图标,是怎么回事? 有些时候在客户端Checkout文件后,SVN的系统图标也会不显示,可以执行一下“Clean up”,就会出现SVN的系统图标。 3:为什么添加的文件,别人看不到,版本库里也没有? 最可能的原因是,你只是执行了“Add”而没有“Commit”,这样只是在本地注明某个文件是预定要增加的,而没有实际添加到版本库中,要添加到版本库必须执行“Commit”。删除文件也是一样。 4 :“Commit failed。……You have to update your working copy first”提交失败,需要首先执行更新操作。多人同时修改同一文件,在提交前其他人已经抢先提交到SVN服务器中,导致该错误;解决方法:对工作复本中的文件进行更新即可。 5. 更新时提示文件发生冲突:“One or more files are not a conflicted state。” 多人同时修改同一文件的同一部分,SVN无法自动进行合并,会导致该错误;解决方法:对工作复本中的文件和服务器的文件进行比较,手工合并即可。 6.“Commit failed;File already exists”提交失败,文件**已存在。 版本管理系统在改变你的计算机上的工作副本时,是非常的小心的。在做任何事情之前,它都尽可能把您的意图写到你的计算机上的日志文件中去。但如果偶然地操作中断了(例如:突然停电了,您的计算机死机了),那么日志文件记录就可能同您最后的工作状态不一致。一种建议解决途径:先把要提交的东西拷出来放到其它目录,再更新本地文件,然后把拷出来的文件重新放回去提交。 7:执行clean up时,出现错误“Subversion reported an error while doing a cleanup!” '**' is not a working copy directory ” 遇到这种情况,先删除隐藏文件夹.svn中的tmp下面的临时文件,再执行clean up。 8:因为仓库与目录很多,使用TSVN每次选择目录URL of repository有很多地址,如何才清除呢?像清除浏览器中的历史那样,用什么方法呢? 右键->TortoiseSVN->Settings->Saved Data,就可以清除你想要的东西了,包括URL、log、窗口大小、密码缓存等。 9:在SVN中选中一个目录show log时,出现了某些版本只显示版本号和(no date),没有其他信息,什么原因引起的? 出现了(no date)的revision,为其他人修改了你所没有权限访问的某个目录下的文件。

SVN常用命令(WINDOWS)

SVN常用命令(windows) 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn addtest.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit-m“LogMessage“[-N][--no-unlock]PATH(如果选择了保持锁,就使 用–no-unlock开关) 例如:svn commit-m“add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock-m“LockMessage“[--force]PATH 例如:svn lock-m“lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update-r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版 本。 svn update-r200test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被 锁定】 2)svn status-v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改 人。 注:svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 简写:svn st 7、删除文件 svn delete path-m“delete test fle“ 例如:svn delete svn://192.168.1.1/pro/domain/test.php-m“delete test file” 或者直接svn delete test.php然后再svn ci-m‘delete test file‘,推荐使用这种 简写:svn(del,remove,rm)

svn基本操作试题及答案

《SVN基本操作》试题 (说明:本卷满分100分,考试时间30分钟,考试方式闭卷) 所在部门:______________姓名:___________得分:________ 一、填空题(每空格5分,共20分) 当发生提交冲突的时候,可使用SVN的DIFF来进行两个版本文件的比较,为保证解决冲突,合并版本的时候,不会删除前版本的内容,建议使用手工解决冲突,而不是使用svn的Merge自动进行版本合并!发生冲突的时候,应知会前版本提交人,一起解决冲突,合并版本! 二、选择题(每题2分,共30分) 1.在空白处,单击右键,选择“TortoiseSVN”(A)便可以进入SVN版本库浏览器。 A、Repo-browser B、Createrepositoryhere C、Settings D、Import 2.在URL中输入访问路径后,会弹出Authentication对话框,在对话框中输入用户名和密码,点击(B)可保存用户名和密码。 A、Authenticationdata B、SaveAuthentication C、Settings D、SavedData 3.如果想要清除服务器上的所有认证缓存,可以通过TortoiseSVN Settings(设置)对话框中的SavedData(A),按clear或者clearall按钮即可清空。 A、Authenticationdata B、SaveAuthentication C、URLhistory D、Logmessages 4.绿色的对勾标记代表(A),红色的感叹号标记代表(D),蓝色的加号代表(B)。 A、工作副本状态正常 B、文件已被计划加入版本控制 C、提交过程中出现冲突 D、工作副本已修改 5.把本地的文件夹下的文件添加到服务器上的某个目录下面,那么在本地的目录右键TortoiseSVN(A)进行。 A、Import B、Createrepositoryhere C、Settings D、Export 6.在SVN版本库浏览器内,选好目录,于空白处右键选择(B)添加文件、选择(C)添加文件夹。 A、createfolder B、Addfile C、Addfolder D、Export 7.在本地计算机硬盘新建的空白文件夹内,右键选择(A)可以从SVN服务器下载受版本控制的文件。

TortoiseSVN客户端常用命令详解

TortoiseSVN客户端常用命令详解 1、Checkout 首先要Checkout服务器端的Repository, 所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。Checkout的具体方式是: 在客户端新建一个空目录,比如:F:\Project1 (确保是空的) 在该目录上单击右键,在弹出式菜单中选中SVN Checkout..., 之后按要求录入内容: 然后点OK,会弹出一个认证对话框, 输入用户名和密码。

点OK后就完成了对Repository的Checkout。 检出后,所有检出文件上都打着绿色对勾: 命令方式检出 1:在DOS命令中输入需要检出的目录: http://192.168.1.210:8081/svn/svnproject/Knowledge 2:其中,意思是,检出文档是放在D盘的根目录下,是检出文档的存放位置,如下图:

2、update 获取版本库中最新版本,具体的方法是:在WC目录上单击右键,SVN Update。 这时WC中的文件就是最新的版本了。 3、commit commit功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。 只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号,在下次commit的时候才能选到该文件。commit页面:

注意:commit的时候,最好填写Log信息, Log内容包括:修改了哪些东西及为什么做这些修改(what+why) 强制必须录入log: property 中设置录入log最小长度,此时commit必须录入log,否则不允许提交. 设置录入log最小长度页面:

linux下svn的配置及svn常用命令

SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。右图是一个svn的工作流程,它可以很方便用户的代码编写。 1.首先安装SVN:”sudo apt-get install subversion”. 查看svn的版本和确定是否安装成功:”svnserve –version”. 2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。这里说明一下:版本库之间是独立的。(下图为msm的目录) 3.增加用户 修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,列子如下 用户组格式: [groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。版本库目录格式: [<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>, 其中,方框号内部分可以有多种写法: /,表示根目录(仓储目录)及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。 下图是我增加的用户组:(注意:等号后留有空格) 增加后:

SVN版本管理工具的安装和使用

SVN的安装和应用手册 整理人:向楠

目录 一、Svn安装所需的文件 (3) 二、安装步骤 (3) 1.安装Apache (3) 2.安装SVN服务器端 (7) 3.安装SVN客户端 (10) 4.汉化SVN客户端 (12) 三、配置步骤 (13) 1.配置SVN服务器端 (13) 四、使用SVN (20) 1.进入SVN文件夹 (20) 2. 往SVN中放入文件 (22) 3. 从SVN中导出文件 (24) 4. 在SVN中更新文件 (26)

SVN的安装和应用: svn(subversion)是一款B/S架构近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。安装时要配置Apache。 一、S vn安装所需的文件 1. Apache- 2.2 web服务器软件安装包 2. VisualSVN 服务器端安装包 3.TortoiseSVN 客户端安装包 4. SVN 汉化包 (如下图:) 二、安装步骤 1.安装Apache 安装前首先看看 1.计算机中有没有apache以前安装过的残留的垃圾文件和文件夹。如 果有的话、先将这些文件清理干净,再进行安装。 2.计算机中有没有安装IIS(网络信息服务),如果有的话,先将IIS关 闭掉,或者将其默认的端口号80改为其他端口号,因为Apache的默认端口号也是80端口,两个端口会发生冲突。 (1)双击打开Apache安装包,单击“next”;

(2)选择“I accept……”,单击“next” (3)单击“next”; (4)按照给出的“eg”填写好信息,选择“for……”,单击“next”;

svn详细使用教程-超经典

svn详细使用教程-超全面 TortoiseSVN是一个SVN的客户端,SVN客户端的使用 1.Checkout Repository 首先要Checkout服务器端的Repository, 所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。 这个Checkout和Visual Source Safe的Checkout意义完全不一样, VSS的Checkout指的是锁定某个文件,如果你以前使用过VSS, 在学习Subversion时这个问题一定要注意。 Checkout的具体方式是: 在客户端新建一个空目录,比如:F:\Project1 在该目录上单击右键,在弹出式菜单中选中SVN Checkout..., 之后在“URL of Repository”文本框中填入你想要连接的Repository的地址, 这个URL地址可以用浏览方式加入。 对于在本教程第二节建立的Repository, URL应该是“svn://xxx/project1” (xxx可以是服务器端主机名,也可以是服务器端的ip地址)。 然后点OK,会弹出一个认证对话框, 输入在教程第三节设置的用户名和密码。 点OK后就完成了对Repository的Checkout。 比如:在服务器端Repository中有一个a.txt文件, 那么Checkout之后F:\Project1目录下也会出现一个a.txt文件。 在本例中由于服务器端的Repository还未添加任何文件, 所以在客户端的F:\Project1下没有文件被Checkout。 执行Checkout除了会在F:\Project1产生Repository存储的文件及目录外, 还会产生了一个“.svn”的隐含目录,该目录是由subversion管理的, 不要删除或者手工改动其中的文件和目录。 现在F:\Project1中的文件和目录就叫做Repository的“Working Copy”简写“WC”(这个简写...汗)。 以后对Repository中文件和目录的修改,添加,删除的操作, 都是通过对这个“Working Copy”的操作实现的。 Checkout执行完后, 会发现F:\Project1目录的图标的左下角附着了一个小的状态图标 (当F:\Project1目录中的文件改变时,这个状态图标也会随之变化), 它表示F:\Project1是一个Repository的“Working Copy”, F:\Project1内的所有文件和目录也会有类似的状态图标。 2.添加文件 将要添加的文件或者目录拷贝到F:\Project1下, 然后在该文件或目录上单击右键,TortoiseSVN->Add,点OK。 如果添加了不止一个文件或目录, 则鼠标不要在F:\Project1中点中任何文件, 然后单击右键,TortoiseSVN->Add, 就可以添加多个文件或目录。

SVN使用和SVN常用命令

Svnserve –d –r 路径名+文件名 Svn://IP SVN使用和SVN常用命令 之前比较少接触linux,今天参考网上的资料实践了一下如何建立svn仓库,包括简单的授权设置。 假设要建立一个svn项目:new_project 一、创建svn仓库 去到svn服务的根目录,(这个目录是在启动svn服务的时候指定的,启动的命令如:svnserve -d -r /usr/local/svnrepos)执行创建仓库命令: svnadmin create new_project 这样在/usr/local/svnrepos/ 里面就多了一个new_project目录出来,进入new_project/conf/ 目录 vi svnserve.conf 将下面几行的注释去掉 [general] anon-access = read #匿名的用户可读 auth_access = write #有授权的用户可写 password-db = passwd #表示svn用户的授权资料保存在passwd文件里面 在conf/目录里面vi passwd,添加授权资料。格式如下: [user] your_name = your_password 二、导入源码 (导入源码的过程不一定要按照下面说的来做,关于svn目录管理其实可以很灵活,适合自己就行) 现在先准备一个临时文件夹,用来构建仓库中的基本目录结构: mkdir temp mkdir temp/trunk mkdir temp/tags mkdir temp/branches

这时可以将temp目录导入的仓库中: svn import temp svn://localhost/new_project -m 'initial' 如果new_project已经开发到一定程度,我们只需要将源码导入到仓库中的trunk就行了。 假设源码的根目录是~/new_project 进入~目录,把源码导入到trunk中: svn import new_project svn://localhost/new_project/trunk -m 'initial again' ====================================================================== ========= 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N] [–no-unlock] PA TH(如果选择了保持锁,就使用–no-unlock开关) 例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“ [–force] PATH

相关文档