安装、启动 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. CozyRSS开发记录19-窗口标题栏交互

    CozyRSS开发记录19-窗口标题栏交互 1.谈谈对mvvm解耦的看法 在使用mvvm时,如何操作窗口,这是一个问题.这个问题的关键点是:mvvm是把view和viewmodel解耦了的,很多写法一 ...

  2. MIT 6.828 JOS学习笔记12 Exercise 1.9

    Lab 1中Exercise 9的解答报告 Exercise 1.9: 判断一下操作系统内核是从哪条指令开始初始化它的堆栈空间的,以及这个堆栈坐落在内存的哪个地方?内核是如何给它的堆栈保留一块内存空间 ...

  3. (转) JAVA中如何设置图片(图标)自适应Jlable等组件的大小

    一.问题: 一个程序,组件上设置某个图片作为图标,因为的label(应该说是组件)已经设定了固定大小, 所以再打开一些大图片时,超过组件大小的部分没显示出来,而小图片又没填充完整个组件 二.解决这个问 ...

  4. hoj 2662 经典状压dp // MyFirst 状压dp

    题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2662 1.引言:用dp解决一个问题的时候很重要的一环就是状态的表示,一般来说,一个数组即可保存状态. ...

  5. Asp.net中static变量和viewstate的使用方法(谨慎)

    在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...

  6. DFS序+线段树 hihoCoder 1381 Little Y's Tree(树的连通块的直径和)

    题目链接 #1381 : Little Y's Tree 时间限制:24000ms 单点时限:4000ms 内存限制:512MB 描述 小Y有一棵n个节点的树,每条边都有正的边权. 小J有q个询问,每 ...

  7. webpack 使用教程--实时刷新测试

    学习webpack,基本始终是围绕: 1.如何安装webpack 2.如何使用webpack 3.如何使用loader 4.如何使用开发服务器 可能我们会在如何使用开发服务器的时候,遇到诸如调试的相关 ...

  8. 关于这个博客以及C++入门该懂的一些东西

    给三牧中学c++入门的同学们看的博客. 大概是入门一类的?说不定会写点自己的结题报告. 写的不好/写错了别怪我,蒟蒻瑟瑟发抖. 天哪要开始写入门了我好慌那么接下来是编译器连接. (本蒟蒻喜欢用DEV ...

  9. Nodejs windows的安装

    0.下载地址: http://nodejs-org.qiniudn.com/ https://nodejs.org/download/ https://nodejs.org/en/ 1.基本就是一路N ...

  10. svn的牛逼操作反向merge

    反向merge,轻松回滚.