安装、启动 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. JDK7和JDK8一些重要新特性

    jdk7新特性(部分) switch支持字符串 List AutoCloseable接口实现自动关闭,在try()中 新增获取环境信息的工具方法,getJavaHomeDir,getUserHomeD ...

  2. c语言快速入门1

    如果你想快速入门计算机,可以参考我的上一篇帖子,先了解一些必备的软知识,然后再来进行语言的快速入门 计算机入门基础知识 目录 1.1.1    计算机与程序 现代计算机可以自动完成计算任务 程序就是按 ...

  3. web安全入门书单

  4. js随笔

    在js中,一个[]认为是数组:{}认为是Json对象:

  5. 展开easyui 树节点到某个点

    $(function () { $('#tt').tree({ url: '/IS/Department/JsonTree?companyID=@(Request.QueryString[" ...

  6. 复利计算器(软件工程)及Junit测试———郭志豪

    计算:1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算 ...

  7. iOS APP性能优化

    :应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源. :本地图片加载方式 本地图片加载常用方法有两种: a. [UIImage imageNamed:@"xx.png& ...

  8. 【第三课】WEBIX 入门自学-Hello World

    在看官网教程时,入门的例子就是dataTable这个空间.So,遵循官网,一起来看一下入门的DataTable组件: WEB使用时固然是先引入相应的库文件: 代码如下 <html> < ...

  9. 【BFS】POJ 3414

    直达 -> POJ 3414 Pots 相似题联动–>HDU 1495 非常可乐 题意:两个壶倒水,三种操作,两个桶其中一个满足等于C的最少操作,输出路径.注意a,b互倒的时候能不能倒满, ...

  10. linux学习第一阶段

    最近比较盲目的生活,翻来覆去,总归是为了自己,还是静下心来看看东西吧.好好学习.天天向上