zoukankan      html  css  js  c++  java
  • 搭建 SVN 服务器

    安装、启动 SVN 服务器

    在 Windows 下,可以使用以下命令将 SVN 服务注册到 windows 服务中去:

    sc create svnserver binPath= "driver:path	osvnserve.exe --service -r x:/svnroot" DisplayName= "Svn Service" start= auto
    

    也可以通过以下命令直接运行 svn 服务:

    svnserve -d -r x:/svnroot
    

    以上命令中,x:/svnroot 是仓库的根目录位置。

    创建、配置 SVN 仓库

    知道 SVN 仓库的启动之后,可以在 SVN 仓库的根目录下创建各个项目的仓库。命令如下:

    cd x:svnroota
    svnadmin create firstrep
    

    这样就完成 firstrep 项目的仓库创建。接下来需要配置仓库的权限:

    cd firstrepconf
    notepad svnserve.conf
    

    将其中的以下内容去掉注释:

    # anon-access = read
    auth-access = write
    password-db = passwd
    # authz-db = authz
    # realm = My First Repository
    

    如果需要详细配置用户的目录访问权限,需要将 authz-db 去掉注释。

    以上配置中,各配置项的作用是:

    • anon-access 设置匿名用户是否可以访问 SVN 仓库,访问权限是什么
    • auth-access 设置认证用户是否可以访问 SVN 仓库,访问权限是什么
    • password-db 设置认证用户的用户名及密码
    • authz-db 设置认证用户对各个目录的访问权限
    • realm 设置仓库所在的域

    接下来在 password-db 中加入用户,可以参考配置该文件已有的格式:

    [users]
    # harry = harryssecret
    # sally = sallyssecret
    username = password
    zhangsan = 123456
    

    这样,就完成了一个项目的 SVN 仓库搭建,如果要搭建另外一个项目,同样在 x:/svnroot 目录下再次运行 svnadmin create 即可。当前所创建的 svn 仓库,其地址为:

    svn://local.ip.com/firstrep
    

    SVN 常用客户端命令

    客户端配置

    使用客户端,一般要在客户端进行编辑器的配置,以便于提交时使用适当的编辑器进行日志编辑。该类配置一般在以下目录中:

    c:Documents and SettingsAdministratorApplication DataSubversion
    C:UsersAdministratorAppDataRoamingSubversion
    ~/.subversion
    etc/subversion
    

    目录中包含以下文件

    README.txt
    auth*
    config
    servers
    

    可以在 config 中配置如 editor, diff 等外部命令。比如,写提交日志的时候,就要用到指定的 editor,比较文件的时候,就要用到 diff

    另外一点重要的是,如果要设置部分文件为非二进制的文件,需要在 auto-props 中指定。如,muse 文件可能会被 svn 认定为二进制文件,所以需要指定如下:

    [miscellany]
    ......
    enable-auto-props = yes
    ......
    [auto-props]
    ......
    *.muse = svn:eol-style=native;svn:mime-type=text/plain
    ......
    

    初始化项目

    初始化项目,实际上就是将一个没有进行版本管理的项目导入到 SVN 中进行版本管理。其命令举例如下:

    svn import project_dir svn://ip.to.svn.com/firstrep/trunk
    

    或者直接

    svn import project_dir svn://ip.to.svn.com/firstrep
    

    前后两者的区别是,前者将一个项目按习惯分为三个目录:

    firstrep    项目目录
     +- trunk   项目主干,项目的主要功能都放在这里
     +- tags    项目标签,项目完成的里程碑版本复制到这里
     - branch  项目分支,项目发布之后,需要继续维护,放在这里
    

    后者就直接将整个项目放在根目录下了。前者分为三个目录只是习惯或者最佳实践,其实自己可以根据需要决定怎么将文件放存放在各个目录中去。

    开发项目

    项目初始化完成之后,可以从仓库中取出项目进行开发,如,要将 trunk 中的代码取出放到 myproject 目录中去,可以执行以下命令:

    svn co svn://ip.to.svn.com/firstrep/trunk myproject
    

    在开发项目的过程中,最常用的有以下的命令:

    # 从仓库中取出最新的版本
    svn up
    # 提交当前修改到仓库中去
    svn ci
    # 查看当前本地的状态,有哪些文件有变动
    svn st
    # 查看本地的文件和仓库中的文件有什么区别
    svn diff xyz.java
    # 查看本地文件与仓库中之前的一个版本有什么区别
    svn diff -rPREV xyz.java
    # 用仓库中的文件覆盖本地的文件
    svn revert xyz.java
    # 查看最近10次提交了哪些文件
    svn log -l 10 -v
    # 查看从 2012-5-3 之后的提交日志
    svn log -r{2012-5-3}:HEAD
    # 查看这个文件的各行是由谁编辑的
    svn ann xyz.java
    # 设置当前文件夹中 lib 目录不进行版本管理
    svn ps svn:ignore lib .
    # 查看当前文件夹中有哪些文件没有进行版本管理(忽略)
    svn pg svn:ignore .
    # 将本地文件更新到之前的第 23 个版本
    svn up -r23
    # 将文件合并到前一个版本
    svn merge -rHEAD:PREV xyz.java
    svn diff -rPREV xyz.java
    
  • 相关阅读:
    华为交换机配置和NTP服务器同步时间
    华为交换机常用查询命令
    Linux在线添加新磁盘
    华为交换机堆叠配置
    Linux-Centos安装nginx–解压版安装
    Linux修改为国内yum源
    pipenv的使用
    使用阿里云语音合成产品,从页面获取它的voice参数列表数据
    使用【Sonatype Nexus Repository Manager】搭建内部NPM源
    Vue3.0 项目中使用事件总线
  • 原文地址:https://www.cnblogs.com/1si2/p/use_svn.html
Copyright © 2011-2022 走看看