Svn学习笔记

常见的操作

  1. 发布项目(share project):项目组长将本机的项目第一次发布到中央仓库中

  2. 下载项目(check out):(检出项目:check out),组员将中央仓库的项目第一次下载到本机

  3. 更新(update):将服务器中的最新的代码,同步到本机 (服务器–>本机)

  4. 提交(commit):将本地修改的内容,同步到服务器中(本地–>服务器)

注意:更新和提交一定要及时,即:

提交:在编写完某一个小功能,每天下班前提交

更新:编写功能前,每天上班前更新

编写之前先更新,写完之后立刻提交

svn的安装配置

下载

下载地址

window下载地址

配置

环境变量配置:一般是自动配置,可以进入环境变量(Path)检验一下,如果没有配置的话,则将root/bin目录配置到环境变量。

验证是否安装成功

win+r

cmd

svn --version

出现一下代码则安装成功

svn,版本 1.8.17 (r1770682)
   编译于 Nov 30 2016,13:25:58 在 x86-microsoft-windows

Copyright (C) 2016 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

可使用以下的版本库访问模块:

* ra_svn : 使用 svn 网络协议访问版本库的模块。  - 使用 Cyrus SASL 认证
  - 处理“svn”方案
* ra_local : 访问本地磁盘的版本库模块。
  - 处理“file”方案
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.9
  - 处理“http”方案
  - 处理“https”方案

配置中央仓库

中央仓库:保存项目的各个版本

使用本地文件夹模拟中央仓库:

 svnadmin create 文件夹目录

例:

svnadmin createC:\\workplace\\svn\\svnck

注意:文件夹要为空

启动svn服务

命令行方式(不推荐)

svnserve -d -r 仓库目录

svnserve -d -r C:\workplace\svn\svnck

注意:此时命令行窗口不能关闭,关闭之后服务就会终止

注册系统方式(推荐)

在cmd中运行

注意:cmd要以管理员身份运行

sc create 服务名 binpath="安装目录\bin\svnserve.exe --service -r 仓库位置" start=auto depend=Tcpip

例:

sc create mysvn binpath="C:\RJ\svn\bin\svnserve.exe --service -r C:\workplace\svn\svnck" start=auto depend=Tcpip

出现以下代码则成功

[SC] CreateService 成功

启动服务的两种方式

方式一(命令行):

启动:sc start 服务名

关闭:sc stop 服务名

删除 sc delete 服务名

方式二(服务列表):

服务列表所在位置:开始->windows管理工具->服务

访问项目

匿名访问

开启匿名访问

打开项目仓库的conf目录下的svnserve.conf文件找到

# anon-access = read
# anon-access = write
# anon-access = none

三者者三选一,

# anon-access = read 表示开启匿名访问后指允许读;

# anon-access = write 表示开启匿名访问可读可写;

# anon-access = none 表示什么也不能操作(一般选择);

注意:去掉#的时候把空格也要去掉,顶格写,否则可能会出错!

授权访问

开启授权访问

打开项目仓库的conf目录下的svnserve.conf文件找到

# auth-access = write
# password-db = passwd
# authz-db = authz

# password-db = passwd 表示授权人的用户名密码存放在passwd文件(授权文件)中。

# authz-db = authz 表示授权访问的权限标识符,权限文件存放在authz中。

注意:去掉#的时候把空格也要去掉,顶格写,否则可能会出错!

编写用户文件

打开passwd文件(授权文件)在svnserve.conf文件的同级目录,在[users]下面添加用户名密码。采用键值对的形式用户名=密码。

例如:

aa=123
bb=abc

编写授权文件

[groups]下面创建分组

dev=aa,bb

对分组进行权限编写,例

[/]
@dev=rw
*=

表示dev组的人员对项目根目录下的文件具有读和写的操作,其他人员没有权限。

在Eclipse中使用SVN

默认eclipse是不支持svn的

配置

离线方式

eclipse_svn_site-1.10.5插件放入eclipse的安装目录的dropins子目录下,需要解压。

在线方式

打开eclipse–>help–>Eclipse Marketplace 搜索:subversion/subeclipse,下载安装即可(可能比较慢)。

检查

启动eclipse在项目中右键Team—>Share Project会出现SVN选项。

使用

发布项目

项目中右键Team—>Share Project->SVN–>创建新的资源库位置–>ur:svn://127.0.0.1–>finish–>右键项目–>提交;

需要输入用户名和密码,

打开项目会发现代码后面有黄色的状态码

黄色圆柱:本地无未提交代码

*/灰色箭头:本地有未提交的代码

红色!:有冲突

蓝色箭头:服务端有最新代码,本地还没有更新

下载项目

file–>import–>从svn检出项目–>next->ur:svn://127.0.0.1–>next–>finsh

提交代码

单个提交

代码右键–>team–>提交

多文件提交

项目右键–>Team–>与资源库同步–>ctrl选中多个文件–>右键提交

更新代码

单个文件

代码右键–>team–>更新

多个文件

项目右键–>Team–>与资源库同步–>ctrl选中多个文件–>右键更新

右键项目–>Team–>更新

注意:当提交项目或下载项目时,点击了保存密码,一但密码出错,很难更改密码,或更换用户;

更改svn用户密码

进入C:\Users\当前用户\AppData\Roaming\Subversion\auth 删除文件夹中的所有文件即可重新填写用户,密码。

解决冲突

一般更新或提交时会发现冲突

右键项目–>Team–>与资源库同步–>红色箭头表示冲突文件

右键编辑冲突–>修改–>右键文件–>team–>标记为解决;重新提交。

查看和恢复历史版本

右键–>Team–>显示资源历史记录

查看版本:双击

恢复所选版本:右键–>获取内容

注意:如果报错,则需要设置svnserve.conf 文件中的anon-access=none

svn发布到外网

第一种

当网段不在同一个网段上时,可以借助nat123将局域网ip映射到外网ip;通过访问外网ip来访问中央仓库。

第二种

租赁服务器,将项目发布到服务器中

第三种

使用svn托管的网站,