使用SVN构建自己的本地代码库

来源:互联网 发布:ubuntu rar压缩命令 编辑:程序博客网 时间:2024/04/28 23:43

0. 引言

现在项目开发通常以团队进行,因此团队之间需要进行分工协作,为了统一管理项目,一般使用版本管理工具来方便彼此的代码提交管理。此时,代码一旦提交,整个工程都会受到影响。因此,在提交代码之前一定要自己先充分进行测试,至少确保没有一些很基本的问题。在代码修改测试的过程中,会有代码的迭代修改,因此也有必要使用版本管理软件对本地的代码进行管理,它能让你方便的回到几天前的一个修改。

1. 版本管理工具简介

版本管理工具有很多,在linux环境下通常会用git和svn。他们都是免费开源的,可以放心使用。本文主要介绍svn的使用。在linux环境下的svn主要使用命令行方式进行,windows下的svn工具是TortoiseSVN,也就是小乌龟,在windows下的使用比较简单,都是图形化操作 ,大部分操作都可以通过右键进行。本文基于linux环境。

2. 安装

通常linux操作系统会内置git和svn版本管理工具,如果没有的化需要自己安装,可以使用源码安装方式,下载源码使用configure/make/make install三步进行安装。在我的ubuntu系统下,使用在线安装更方便,安装命令如下:

sudo apt-get install subversion
3. 常见命令用法

3.1 代码库创建

代码库可以在任何地方进行创建,为了进行统一管理,我在创建了svn_repo目录,并将svn工程创建在此目录以进行统一管理。

使用svnadmin create 创建工程代码库:

cd ~/svn_reposvnadmin create project1
此时,在svn_repo目录下会生成一个project1目录。project1目录下的conf是工程的配置目录,主要有3个文件需要修改。

1) svnserve.conf

默认文件的配置都被注释了。主要有如下内容:

anon-access = readauth-access = writepassword-db = passwdauthz-db = authz
第一行设置匿名用户访问权限,第二行表示授权用户访问权限。read表示只读,write则可读可写,none禁止访问。password-db 指定用户名以及对应的密码所用的wenj。authz-db指定权限管理的文件。在构建本地库可以简单将anon-access设为write。
2) passwd & authz

这两个文件的设置可以参考默认文件的注释进行相关设置。

3) 启动svnserve

svnserve -d -r ~/svn_repo

3.2 版本库的首次导入。

1) 方法1

首先使用svn co 检出版本,然后构建相关的目录(svn mkdir)和源码,然后使用svn add 和svn ci添加目录以及源码并提交。

cd ~/tmpsvn co svn://localhost/project1cd project1svn mkdir srccd srctouch test.csvn add test.csvn ci
2) 方法2

构建好版本库目录,并将源码拷贝到目录库(如果已经有现成的目录结构可以省略此步骤)。使用svn import载入。

cd ~/svn_reposvnadmin create project2//配置文件修改省略cd ~/tmpmkdir -p code{branches,tags,trunk}svn import code svn://localhost/project2
注意,只有code目录下的{btanches,tags,trunk}目录以及子目录和内部文件会被导入版本库,检出的版本库会看到如下目录结构:

project2/branches

project2/tags

project2/trunk

3.3 基本日常用法

通常是先使用svn co 检出对应的版本,对于已经检出的,可先使用svn up进行版本更新。

使用svn add 和svn  ci 添加自己的代码并提交。此外,svn支持常见的文件以及目录操作。

svn mkdir/svn cp /svn mv /svn rm等。可以使用svn help 查看相关的命令解释以及用法。

svn info:查看版本信息

svn st: 版本状态 

    ' '  no modifications

    'A' Added

    'C' Conflicted

    'D' Deleted

    'I' Ignored

    'M' Modified

    'X‘ unversioned directory

    '?' item not under version control

    '!' item missing(remove not by svn rm)

更多的信息可以使用svn help st进行查看。

svn log:查看版本提交的注释信息。


0 0
原创粉丝点击