ubuntu下使用svn管理项目

来源:互联网 发布:加入域找不到网络路径 编辑:程序博客网 时间:2024/06/08 07:50

1.svn简介

        如果面临一个大的项目开发任务,特别是需要多个人协作完成,为了避免文件修改的冲突和跟踪对源文件的修改,因此对于源文件的管理也就显得非常的重要!

       在UNIX项目管理的发展来看,有SCCS,RCS ,CVS,subversion。SCCS时最早应用于UNIX项目管理的,随着发展,逐渐被接口更丰富的RCS所代替。CVS是比RCS更高级   的工具,它用于基于互联网的协同开发。它具有两个显著的优势:可以通过网络使用,并且允许并发开发。Subversion是一个新的开发工具。  它旨在最终来替代CVS。

2.svn 安装

    在Ubuntu下安装非常的简单。使用命令sudo apt-get install subversion;Red-Hed系列的系统可以使用

    sudo yum -y install subversion

3.svn 建立仓库

   首先说明什么的仓库(repository),它是你管理的项目储藏的地方,所有的项目各个版本信息都在它的管理之下。

<span style="font-size:14px;">                  svnadmin create /path/to/your/repostitory</span>

   首先需要mkdir自己的repository的主目录,项目的管理的人员是在一个group中,可以给该目录群读写权限。

   此时仓库建立完成,接下来需要了解他的配置文件。在repository的目录下有conf的目录,里面有主要的配置文件——

   authz passwd svnserve.conf

             svnserve.conf:

             主要有一下几句:

                  anon-access = read                  auth-access = write                  password-db = passwd                  authz-db = authz

         前两句是对repository的匿名用户何认证用户的访问权限设置,后两句是密码和认证的用户的文件放的位置,如果是单个文件名字,说明是在同一个文件目录下。

        authz 文件是在同一个项目中各个成员的访问权限的限制,通常每个成员只对自己开发的文件具有读写权限,而对于其他成员的文件有读权限。

        passwd是对每个成员的密码管理。

  4.导入自己的项目文件或者项目工程

      svn采用如下的命令导入工程

<span style="font-size:14px;">        svn import cvs-sp file:///usr/local/repository/trunk</span>

这是我自己导入工程时的命令:

<span style="font-size:14px;"> svn import -m "face detection program" /home/zkl/doc/facedetector file:///home/zkl/svn/project/facedetector-m:是对项目文件的注释信息,在你查看每个版本的时可以显示出来。 第一个目录时你需要导入的文件的路径,第二个时仓库的目录 </span>

  在导入成功后,整个项目就存在于仓库里面了,即使删除原来的工程也没有关系,也能够通过命令恢复出来。

5.svn操作中常用的命令

 1>  基本下载提交命令

        从仓库中获得项目文件:

       <span style="font-size:14px;">   svn  checkout  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名        svn  checkout  svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  </span>
        如果是本地下载svn checkout file:///home/zkl/svn/project/ /home/zkl 就可以了。

        有了文件,这下就可以进行工作了,结束以后,需要提交你的文件。

        使用:

       <span style="font-size:14px;">   svn commit -m “提交备注信息文本“ [-N] [--no-unlock] 文件名        svn ci -m “提交备注信息文本“ [-N] [--no-unlock] 文件名        必须带上-m参数,参数可以为空,但是必须写上-m  </span>
       增加文件时:

       svn add 文件名

  更新文件:

       svn update
       svn update -r
修正版本 文件名
       svn update 文件名

       删除功能

       svn delete svn://路径(目录或文件的全路径)-m “删除备注信息文本”
       推荐如下操作:
        svn delete 文件名 
        svn ci -m “删除备注信息文本”

2> 查看版本信息命令

  比较差异:

       svn diff 文件名 
       svn diff -r 修正版本号m:修正版本号n文件名   

      查看文件或者目录状态

      svn st 目录路径/名
      svn status 目录路径/名<- 目录下的文件和子目录的状态,正常状态不显示 
     【?:不在svn的控制中;  M:内容被修改;C:发生冲突;
      A:预定加入到版本库;K:被锁定】 
      svn  -v 目录路径/名
      svn status -v 目录路径/名<- 显示文件和子目录状态

     查看日志
     svn log
文件名

     查看文件详细信息
     svn info
文件名

     查看版本库下的文件和目录列表
      svn list svn://
路径(目录或文件的全路径)
     svn ls svn://路径(目录或文件的全路径)


参考文献:

1.linux程序设计(第4版)

2.http://www.cnblogs.com/lidan/archive/2012/04/19/2457751.html


文中难免有纰漏和不详细之处,欢迎批评指正。           

0 0
原创粉丝点击