SVN介绍+安装+配置+命令行操作
发布日期:2021-11-14 22:18:52
浏览次数:6
分类:技术文章
本文共 2704 字,大约阅读时间需要 9 分钟。
一:介绍
Subversion就是一款实现版本控制的工具软件,通常也称为版本控制器,简称SVN。Subversion是Apache软件基金会组织下的一个项目。SVN可以帮助我们在开发中完成以下目的。下面先简要介绍一下版本控制的功能:
- 备份–编写的代码上传到服务器保存
- 代码还原–本地代码遗失可以从服务器中checkout下来
- 协同修改–对于有冲突的代码可以商量
- 多版本项目文件管理–很多文件统一管理
- 追溯问题代码的编辑人和编辑时间(主要是为了更好的解决问题,不是推卸责任哦,我们要对自己的代码负责)
- 权限控制–不同的开发人员对于代码的读写权限不一致
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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年03月15日 22时35分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql整体会滚_滚mysql
2019-04-21
向mysql数据库中添加批量数据类型_使用JDBC在MySQL数据库中快速批量插入数据
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
idea测试连接mysql报错08001_IDEA连接MySQL错误
2019-04-21