安装、启动 SVN 服务器

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

sc create svnserver binPath= "driver:\path\to\svnserve.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 firstrep\conf
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 Settings\Administrator\Application Data\Subversion
C:\Users\Administrator\AppData\Roaming\Subversion
~/.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

搭建 SVN 服务器的更多相关文章

  1. 如何搭建SVN服务器,详细安装步骤。

    SVN服务器端安装 下载: VisualSVN是一款图形化svn服务器.官网 http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.c ...

  2. CentOS 7搭建SVN服务器

    安装步骤如下: 1.yum install subversion 2.查看安装版本 svnserve --version 3.创建SVN版本库目录 mkdir -p /var/svn/svnrepos ...

  3. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  4. 记录第一次搭建svn服务器

    搭建svn服务器需要另外的软件, 在此以32位的为例: 安装过程非常简单, 一直下一步下一步确定就好了, svn安装完毕再安装中文语言包, 安装完成后可以在设置里面找到中文简体选择就OK了 主要记录一 ...

  5. 如何在win上搭建SVN服务器

    本博文转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本, ...

  6. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  7. Mac 搭建 SVN 服务器环境

    Mac 搭建 SVN 服务器环境 一.创建svn repository svnadmin create /path/svn/pro //仓库位置,svn是svn的目录,pro是一个版本库的目录 PS: ...

  8. Ubuntu 14.04快速搭建SVN服务器及日常使用【转】

    转自:http://www.linuxidc.com/Linux/2015-05/117735.htm 1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务 ...

  9. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  10. 原 Linux搭建SVN 服务器

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

随机推荐

  1. xamarin(3.9.236)里DATETIMENOW的错误。

    [ERROR] FATAL UNHANDLED EXCEPTION: System.EntryPointNotFoundException: monodroid_get_system_property ...

  2. [翻译]通过使用正确的search arguments来提高SQL Server数据库的性能

    原文地址:http://www.sqlpassion.at/archive/2014/04/08/improving-query-performance-by-using-correct-search ...

  3. 单调队列 && 斜率优化dp 专题

    首先得讲一下单调队列,顾名思义,单调队列就是队列中的每个元素具有单调性,如果是单调递增队列,那么每个元素都是单调递增的,反正,亦然. 那么如何对单调队列进行操作呢? 是这样的:对于单调队列而言,队首和 ...

  4. Python OS模块常用函数说明

    Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Wi ...

  5. Javascript-DOM总结

    DOM总结 1.DOM的含义     DOM是Document Object Model文档对象模型的缩写.根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的 ...

  6. Asp.net mvc页面传值-- dropdownlist

    后台传值 List<ConfigParamInfo> paramList = configParamBLL.GetModelList(" and parentID=1" ...

  7. CentOS 搭建 nginx + tomcat

    安装nginx yum install nginx 修改 nginx.conf, (/etc/nginx/nginx.conf), 网上有人做人所有配置项目的详解. #nu For more info ...

  8. BZOJ1129 : [POI2008]Per

    枚举LCP,假设前$i-1$个都相同.那么后面$n-i$个数可以随意排列,第$i$个位置可以填的方案数为后面小于$a_i$的数字个数,树状数组维护. 同时为了保证本质不同,方案数需要除以每个数字的个数 ...

  9. Java 数列求和

    编写程序,显示1+2+3+4+5+6+7+8+9的结果 public class Homework006 { public static void main(String[] args) { int ...

  10. PHP用户注册与登录【1】

    需求分析 主要功能分为 用户注册.用户登录.用户退出.用户中心 四个部分. 用户注册 用户注册主要功能有: 注册信息表单填写界面 javascript 脚本初步检测用户输入的注册信息. 注册处理模块检 ...