版本管理 与 Subversion软件的使用

版本管理也即对软件产品的管理,主要是使用版本管理软件,对软件产品开发过程中的一个或多个文件的修订过程进行跟踪,当这些文件组成的产品可以稳定运行时,就成为一个版本。版本管理不仅可以提高软件产品的稳定性,也可以优化开发人员的工作量。

 

版本管理软件有许多,如VSSPVCSCVSSubVersionSVN)等。

svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。

svn服务器有2种运行方式:独立服务器和借助apache2种方式各有利弊。

svn存储版本数据也有2种方式:BDBFSFS。因为BDB方式在服务器中断时,有可能锁住数据(我在搞ldap时就深受其害,没法根治),所以还是FSFS方式更安全一点。

SVN的配置与运行

1.SVN 命令行服务器

(1)       D盘创建名为project的文件夹。使用SVNsvnadmin命令创建一个用于存放项目资源库的文件夹:

svnadmin create d:/project/learn

Subversion将在d:/project/learn目录下生成一些用于存储项目信息的文件夹与文件

 

(2)       打开./conf/svnserve.conf,在[general]节里添加如下内容,或删除同样语句前的#。前两行设置普通用户和认证用户的权限;第三行指定用户信息存储的文件;第四行指定软件仓库的名称。

anon-access = read

auth-access = write

password-db = passwd

realm = learn

(3)       打开./conf/passwd文件,该文件即为存储用户信息的文件。建立新的帐号,格式如“用户名=密码”。系统已自带了#harry = harrysecret 这样一个用户名为harry密码为harrysecret的帐号,去掉前面的#,使用该帐号亦可。

Admin = 123456

(4)       配置完成后,即可运行SVN了,命令行输入:

 svnserve -d -r "d:/develop/project"

第一次运行时,防火墙可能弹出阻止窗口,允许就行了。以后就没反应了,但注意不要关闭该窗口。

5SVN以服务运行

命令行运行的SVN服务器,命令行窗口要一直保持运行,最好的方法是把SVN作为服务运行,用以下命令,把SVN注册为服务

sc create svnserve binpath= "/"C:/Program Files/Subversion/bin/svnserve.exe/"  --service --root "d:/project" displayname= "Subversion" depend= tcpip start= auto

 

2. SVN命令行客户端

客户端命令svn,是一个基于命令行的工具,完成大部分项目管理操作。

A.       导入项目

格式:svn import 项目路径 SVN资源库路径及名称 –m “项目说明文字,必选” –username 项目资源库管理者用户名 –password项目资源库管理者密码

示例:

1)创建D:/develop/code文件夹,并向文件夹中复制一些文件

2)执行如下命令,注意 -- 符号的中英文

D:/develop/copy>svn import d:/develop/code svn://localhost/learn -m "hahahha" --

username admin --password 123456

增加           D:/develop/code/新建 文本文档.txt

增加           D:/develop/code/123456.txt

 

提交后的版本为 1

3)这样,D:/CODE目录下的文件就成功的导入到了资源库中,其它用户可以通过SVN客户端命令,导出这些文件进行编辑。

B.        导出项目

格式:Svn checkout SVN资源库路径及名称 --username admin --password 123456

示例:

1)创建D:/develop/copy文件夹,用于存放导出的项目

2)切换到D:/develop/copy目录,执行命令

D:/develop/copy>svn checkout svn://localhost/learn --username admin --password 1

23456

A    learn/新建 文本文档.txt

A    learn/123456.txt

取出版本 1

(1)       运行命令后,当前文件夹(D:/develop/copy)下,多了一个learn文件夹,即是命令导入的项目文件。

C.       更新项目

该命令只能用于在svn import成功,并使用svn checkout导出的项目中。

主要用于团队工作,当其它成员对项目做出更新并提交后,可以使用svn update命令,来取得这些更新的文件到当前编辑的项目。该命令没有参数。

如果项目中有更新的数据时,SVN用相应的标记标出更新文件的状态。

U

文件被更新

A

新加入的目录或文件

D

被删除的目录或文件

R

使用新的项目,覆盖具有相同名称的旧项目

G

同一文件被同时修改,使用SVN合并后,没有产生问题的文件状态

C

编辑文件与服务器文件冲突的文件

D.       查看项目状态

Svn status 用于列出当前编辑的项目中的所有相关的修改,而不用访问资源库。运行svn status时,当前目录必须有一个有效的副本。SVN会列出当前项目中,已经做出修改的状态,并设置状态标记。

A

需要加入资源库

C

本地项目与服务器项目冲突,在提交前必须手动解决

D

需要从资源库删除

M

被修改的项目

R

与此标记对应的项目将被删除后使用同名项目覆盖

X

目录没有版本化,但与Subversion外部定义关联

?

不在版本控制之下的项目

!

在版本控制之下,但已经损坏的项目。可以使用svn updatesvn revert file 命令恢复原来的文件

~

当前编辑版本中,与资源库重名的项目

I

不在版本控制之下的项目,SVN会在svn addsvn importsvn status命令中忽略这个文件

 

Svn status –v :显示当前编辑版本中的所有项目

Svn status –u :根据资源库添加新信息

例如,在d:/develop/copy/learn副本中,新增文件45545.txt,修改文件123456.txt,执行命令

D:/develop/copy/learn>svn status

?       45545.txt

M       123456.txt

E.        项目对比

Svn diff 根据当前编辑版本中的元数据,与已经修改的版本进行比较,并列出已经修改的项目,以及修改的具体内容。

D:/develop/copy/learn>svn diff

Index: 123456.txt

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

--- 123456.txt  (版本 1)

+++ 123456.txt  (工作副本)

@@ -1 +1,3 @@

-44646546546

/ No newline at end of file

+44646546546

+

+我是新增的一行

/ No newline at end of file

Svn diff支持重定向操作,可以把内容导出到文件中

Svn diff > d:/diff.txt

F.        恢复项目

Svn revert ,从资源库中恢复指定的文件到当前编辑版本中。本地修改失败后,可以这样恢复。

Svn revert 123456.txt

G.       项目提交

Svn commit 把文件的新状态提交到资源库中,以便于下次修改项目时,调用编辑好的内容。

格式:svn commit 要提交的文件或目录 –m “注释” –username 用户名 –password 密码

Svn commit .

 

Subversion快速入门教程:http://www.subversion.org.cn/?action-viewnews-itemid-1

 

SubversionWindows客户端TortoiseSVNhttp://tortoisesvn.net/

 

SVN与开发工具

不管使用命令行运行客户端,还是使用TortoiseSVN,都是单独运行,要编辑导出的代码,还是要用外部编辑器。

Eclipse中可以使用Subclipse插件,实现对SVN服务的支持。

Dreamweaver 中 用 SubWeaver_0_04.mxp http://code.google.com/p/subweaver/ 双击即可安装,参考http://hi.baidu.com/279713119/blog/item/9fbecb89e7232ddefd1f10f5.html

SVN与CVS项目转换

可从官方网站下载转换工具

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值