首页 > 技术文章 > SVN

anpeiyong 2019-11-21 14:33 原文

1、概述

    1.1、Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统;

        现在发展成为 Apache 软件基金会的一个项目;

        采用了  分支  管理系统

    1.2、SVN的概念

        repository

          代码仓库

        checkout

          从远程仓库获取代码

        commit

          将本地代码提交到远程仓库

        update

          从远程仓库获取最新的代码

    1.3、SVN是以     管理源代码的;

        如果2个程序员修改  同一个文件只要不是同一行,SVN会自动进行合并

        如果修改了同一行,则会提示冲突,需要手动解决

2、SVN的生命周期

    2.1、创建版本库

        版本库  相当于  一个集中的空间,用于  存放开发者所有的工作成果

        版本库  不仅  能存放文件,还包括了   每次修改的历史,即每个文件的变动历史;

        create  创建一个新的版本库;

    2.2、检出

        svn checkout   从版本库  创建  一个工作副本

        工作副本  是  开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中;

    2.3、更新

        svn update  更新版本库的,这个操作   将  工作副本  与  版本库  进行同步

    2.4、执行变更

        从版本库 中检出后,自己工作副本中的文件可以进行变更:

          编辑文件

          添加文件|目录

            添加后的文件|目录  不会立刻成为  版本库的一部分,而是被添加到 待变更列表 中,直到执行  commit 后  才会成为版本库的一部分

          删除文件|目录

            删除后的文件|目录  立刻  从  工作副本中删除,但该文件|目录只是被添加到 待变更列表 中,直到执行了  commit 操作后  才会从版本库中真正删除

          rename  更新文件|目录 的名字;

    2.5、复查变化

        当你的工作副本  与  版本库同步后,你对工作副本中的内容进行变更,你的工作副本会比版本库要新,commit操作之前需要复查你的修改;

        svn status  展示  工作副本内  变更的列表

    2.6、修复错误

        当你的工作副本中的内容变更后,不想再要修改后的,想退出之前的;

        svn revert   销毁 待变更列表  并  将  工作副本  恢复  到原始状态

    2.7、解决冲突

        commit时,工作副本与版本库会发生冲突;

        svn merge   自动处理  可以安全合并的东西

                其他的被当做冲突;

    2.8、提交更改

        svn commit  将更改的工作副本内容 同步到版本库;

                原子操作;

3、svn服务器

    3.1、创建版本库目录

        mkdir /opt/svn

    3.2、创建版本库

        svnadmin create /opt/svn/runoob

    3.3、启动svn服务器

        svnserve -d -r 目录 --listen-port 端口号

          -r: 配置方式决定了版本库访问方式。

          --listen-port: 指定SVN监听端口,不加此参数,SVN默认监听3690

4、SVN分支

    4.1、默认会有一个trunk版;

        分支  其实是trunk的copy版

    4.2、本地工作副本  创建分支

        svn copy trunk/ branches/我的分支名称

    4.3、提交新增的分支 到版本库

        svn commit -m "添加新分支"  -m:添加注释

    4.4、进入新分支

        cd branches/我的分支名称/

    4.5、查看我的分支下的内容

        svn ls

    4.6、将我的分支合并到trunk

        svn merge ../branches/我的分支名称

5、常用命令

    svn checkout ***

        从版本库检出

    svn diff

        查看本地工作副本 与  版本库  不同的内容

        -r  比较工作副本与版本库中指定文件  eg:svn diff -r 3 rule.txt 比较版本号为3的rule.txt文件

    svn update

        从版本库更新本地工作副本内容

    svn status

        查看本地工作副本的 变更列表

    svn revert

        放弃对文件的修改

    svn log

        展示svn的版本作者、日期、路径等;

    svn list

        不检出文件的情况下查看远程版本库中的文件; eg:svn list 版本库地址

    svn add 文件名

        将某个文件加入版本控制;

6、SVN添加readme.txt文件

    工作副本下新建readme.txt文件--->svn add readme.txt (将文件加到版本控制中,等待提交到版本库)--->svn commit -m "svn readme"(-m 添加注释信息)

        

推荐阅读