SVN介绍+安装+配置+命令行操作
发布日期:2021-11-14 22:18:52 浏览次数:6 分类:技术文章

本文共 2704 字,大约阅读时间需要 9 分钟。

一:介绍

Subversion就是一款实现版本控制的工具软件,通常也称为版本控制器,简称SVN。Subversion是Apache软件基金会组织下的一个项目。SVN可以帮助我们在开发中完成以下目的。下面先简要介绍一下版本控制的功能:

  1. 备份–编写的代码上传到服务器保存
  2. 代码还原–本地代码遗失可以从服务器中checkout下来
  3. 协同修改–对于有冲突的代码可以商量
  4. 多版本项目文件管理–很多文件统一管理
  5. 追溯问题代码的编辑人和编辑时间(主要是为了更好的解决问题,不是推卸责任哦,我们要对自己的代码负责)
  6. 权限控制–不同的开发人员对于代码的读写权限不一致

SVN工作原理

SVN基本操作:

1:检出,也就是通俗意义上的下载,一般只是开发开始执行一次即可2:更新,将本地文件和服务器端文件保持一致3:提交,将每次的工作代码提交到服务器,通常在完成一个功能模块时进行

二:SVN安装

1:直接下载

然后安装 Setup-Subversion-1.8.9-1.msi

  • 安装目录是非中文无空格目录
  • 安装程序会自动配置Path环境变量

在命令行输入:svn –version,如果看到相关版本信息则安装成功

三:配置版本库

1:说明:

在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个SVN服务器能够同时管理多个项目,而不是为每一个项目搭建一个SVN服务器——这显然太浪费资源了。例如:D:\DevRepository\Subversion\CRM    D:\DevRepository\Subversion\ERP    D:\DevRepository\Subversion\OA

2:配置的方式:

2.1:一个版本库 对应 多个项目(会产生断层,即某个项目开始版本不是1,可能是100甚至10000等)2.2:一个版本库 对应 一个项目(推荐使用)
#创建版本库命令命令格式主命令     子命令    参数1svnadmin    create     仓库路径举例  svnadmin create D:\DevRepository\Subversion\StuSys

3:版本库说明

版本库说明

4:启动服务器程序

4.1 第一种方式

主命令 参数1 参数2 参数3svnserve    -d表示后台执行    -r表示版本库根目录  D:\DevRepository\Subversion举例  svnserve -d -r D:\DevRepository\Subversion

4.2 第二种方式

注册Windows服务[1]将SVN服务端程序注册为Windows服务,就可以让SVN服务随系统一起启动,克服了命令行方式的不足。[2]注册Windows服务需要利用XP、2000以上系统自带工具Service Control,执行文件是sc.exe,注意这个命令不是SVN的命令。

注册服务成功后即可在服务中心启动服务即可

服务开启停止删除

四:使用命令行模式访问服务器

**1:检出**svn checkout svn://SVN服务器主机地址/具体仓库目录 保存检出内容的目录svn checkout svn://localhost/ERP MyERP取出版本 0。简答的理解就是加入项目后下载服务器最新的项目版本到本地
**2:提交**提交简易流程分析:进入D:\DevWorkSpace\SVNSpace\MyERP目录创建一个文件test.txtD:\DevWorkSpace\SVNSpace\MyERP>svn commit -m "My first commit"  test.txtsvn: E170001: 提交失败(细节如下):svn: E170001: 认证失败原因是没有权限:暂时先开启匿名访问权限[1]进入对应的版本库目录下的conf目录:D:\DevRepository\Subversion\ERP\conf[2]打开svnserve.conf[3]将# anon-access = read改为anon-access = write,也就是去掉“# ”,将read改为write。注意前面不要留空格,一定要顶格写。[4]不需要重启SVN服务,甚至命令行窗口都不需要重新打开。重新执行提交命令D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m "My first commit"  test.txt正在增加       test.txt传输文件数据.提交后的版本为 1。其实svn commit命令最后可以不指定具体文件,此时表示提交当前工作副本中的所有修改
**3:更新**    更新很简单下面简述一下    1:比如小王在当前工区区间修改了文件,然后提交,此时服务器上的文件和小王的文件理论上应该保持一致(如果没有版本冲突的话)####版本冲突:简单地说就是项目中的其他成员同时修改了同一份文件,此时有一个人提交了,另外一个人再提交就会提示文件过时,此时需要 手工 解决版本冲突后再进行操作*    2:此时小李参加了这项工作,首先他要checkout服务器的项目到本地,然后完成工作并提交。    3:第二天,小王回来工作。此时小王的项目显然不再是服务器中最新的项目了,所以他需要update一下项目使他的本地项目和服务器保持一致。从这个过程中我们可以看出更新其实和检出有些类似,不同之处在于    a: checkout是下载服务器的文件到本地,update也是这个操作,不同之处在于重点是对更改的文件的进行下载到本地。    b: update一般会在每次开始工作时执行,而checkout则是在参加项目时执行一次即可

注意:提交过程中可能会出现最常见的问题–冲突!!!

规避冲突的一个有效方法就是首先update之后再进行提交。
关于冲突
冲突

五:版本库配置文件相关

none表示不允许匿名用户访问 write表示读写 read表示只读anon-access = none  匿名访问auth-access = write 授权访问password-db = passwd 密码authz-db = authz 用户

多版本库共享配置设置

多版本共存设置

其他CMD命令

1:使用svn info查看工作副本信息2:对于某一个文件使用svn info查看工作副本信息3:使用svn log命令查看目录或文件日志信息[注意:使用这个命令的前提是设置匿名访问为none,即:anon-access = none,否则会出现“svn: E220001: 条目不可读”错误]

转载地址:https://blog.csdn.net/qq_18538781/article/details/53744812 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SVN实例--结合Myeclipse
下一篇:Mybatis调用存储过程

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月15日 22时35分13秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql整体会滚_滚mysql 2019-04-21
向mysql数据库中添加批量数据类型_使用JDBC在MySQL数据库中快速批量插入数据 2019-04-21
最全的mysql 5.7.13_最全的mysql 5.7.13 安装配置方法图文教程(linux) 强烈推荐! 2019-04-21
mssql连接mysql数据库文件_在本地 怎么远程连接MSSQL数据库 2019-04-21
mssql 远程无法连接mysql_解决SQLServer远程连接失败的问题 2019-04-21
linux mysql c++编程_Linux下进行MYSQL的C++编程起步手记 2019-04-21
Maria数据库怎么复制到mysql_MySQL、MariaDB数据库的AB复制配置过程 2019-04-21
mysql5.6 icp mrr bak_【mysql】关于ICP、MRR、BKA等特性 2019-04-21
mysql utf8跟utf8mb4_MySQL utf8 和 utf8mb4 的区别 2019-04-21
docker mysql开机自启动_Docker学习4-学会如何让容器开机自启服务【坑】 2019-04-21
在mysql中删除表正确的是什么_在MySQL中删除表的操作教程 2019-04-21
mysql有3个共同好友_共同好友mysql 2019-04-21
代理查询 mysql_查询数据库代理设置 2019-04-21
mysql dif_mysqldiff实现MySQL数据表比较 2019-04-21
mysql 允许其他主机访问权限_允许其他主机访问本机MySQL 2019-04-21
druid不能close mysql连接_alibaba druid mysql连接问题 2019-04-21
mysql 设置按天分表_MySQL 优化实战记录 2019-04-21
java连接mysql 不推荐_java连接mysql 2019-04-21
mysql数据库 quota_shell脚本抓取用户存储quota写道mysql并展现到grafana面板 2019-04-21
idea测试连接mysql报错08001_IDEA连接MySQL错误 2019-04-21