SVN基础

SVN概述

SVN是SubVersioN的简称,是Apache研发的一个开源的版本控制系统。

SVN的作用

使用SVN的目的主要是两个:

  • 实现项目组中的资源共享
  • 实现资源文件的版本控制

SVN的工作原理

在subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。

SVN的体系结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UYF0ne27-1604841861768)(D:\Java\Java_note\JavaWeb\picture\SVN体系结构图.png)]

客户层,服务层,仓库层

补充:FSFS一种不需要数据库的存储系统。FSFS 采用文件系统的方式, 替代原来的基于Berkeley DB的实现.

SVN的下载和安装

SVN全称Subversion,是一款优秀的版本控制工具。

SVN分为服务器、客户端两部分,服务器和客户端版本很多,有的是收费的,有的需要注册。我们选择免费、不用注册的。

以VisualSVN作为服务器,以TortoiseSVN作为客户端。

看csdn博客

SVN命令行的使用

SVN管理员命令

svnadmin help

svnadmin --version :查看版本号

svnadmin help create

svnadmin create 路径[仓库名]

  • 用于创建SVN版本仓库(根仓库)

  • SVN仓库分为两级,顶层仓库与根仓库

  • 注意:在创建根仓库时,需要先创顶层仓库。根仓库存在不报错,没有则创建

SVN服务端命令

svnserve -h:获取帮助

svnserve -d :用于开启DOS系统的SVN服务。(开启了一个守护线程,等待客户端连接)

  • SVN默认的端口号是3690

  • Windows:netstat -a命名查看当前网络的连接状态。

svnserve -d --listen-port=端口号:设置指定端口号

访问svn服务器:

svn://localhost:3690/D:/Java/SVN/repository/sms:这种方式暴露顶层仓库路径不安全

svnserve -d -r 顶层仓库路径:指定默认的svN顶层仓库的路径。一旦指定,那么客户端在使用svn时直接给出根仓库名即可。

设置完之后访问:svn://localhost:3369/sms

将SVN服务注册为开机自启动的Win服务

在管理员cmd中

sc create SVNServer binpath= "D:/Java/SVN/Apache-Subversion-1.14.0/bin/svnserve.exe --service -r D:/Java/SVN/repository" start=auto depend=Tcpip

sc:serve create

启动/停止SVNServer服务

net start/stop SVNServer

删除系统服务

  • 先停止再删除
  • net stop SVNServer sc delete SVNServer

SVN客户端命令

svn checkout

  • checkout,称为检出。
  • 其意义为 : 创建客户端指定目录与服务端指定根仓库间的连接关系。
  • 一个客户端一般情况下,只需要检出一次。
  • 客户端指定的目录,官方名称为working copy,通常称为客户端连接目录。
基于顶层仓库的checkout

在这里插入图片描述
情况一:

  • 在任意目录下运行此命令:
    在这里插入图片描述

  • 其运行效果为,在aacof目录中出现一个.svn的隐藏目录。

情况二:

  • 若当前执行命令的目录为working Copy目录,则运行以下命令后的结果为:

在这里插入图片描述

  • 在working copy中会出现根仓库目录,而根仓库目录中会存在.svn隐藏目录。
基于根仓库的checkout

在这里插入图片描述

无论是在任意目录运行checkout ,

在这里插入图片描述

还是在working copy 中运行checkout ,

在这里插入图片描述

其运行效果是相同的,都是在working copy目录中产生一个.svn 的隐藏目录。

服务端修改客户端权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7LEXFRu-1604841861810)(D:\Java\Java_note\JavaWeb\picture\svn客户端权限.png)]

### The anon-access and auth-access options control access to the
### repository for unauthenticated (a.k.a. anonymous) users and
### authenticated users, respectively.
### Valid values are "write", "read", and "none".
### Setting the value to "none" prohibits both reading and writing;
### "read" allows read-only access, and "write" allows complete 
### read/write access to the repository.
### The sample settings below are the defaults and specify that anonymous
### users have read-only access to the repository, while authenticated
### users have read and write access to the repository.
anon-access = write    ---------给匿名用户授权了写的功能
# auth-access = write  ---------给授权用户授权了写的功能

svn add

当一个文件/目录,被存放到 working Copy中时, svN并不会感知到它们的存在,即 SVN并不会对其进行管理。若要使SVN对其进行管理,必须将其通知add命令,添加到SVN管理中。

在这里插入图片描述

需要注意:

  • 被add 的文件/目录,必须存在于working Copy中。

  • add命会的作用就是将指定文件/目录交由sv进行管理,所以一个文件/目录一般情况下,就执行一次 add命令即可。add命令的执行与文件是否被修改过没有任何关系。

  • 被add的目录,会将当前目录及其所包含的所有文件/目录,一次性都交给SVN管理

svn commit

commit命令用于将客户端working Copy中所有对文件/目录的操作提交到服务端。

svn commit Student.txt -m writed-by-aa

注意:

  • commit命令必须携带参数-m,用于完成日志记录
  • 提交后的文件,在服务端是无法直接看到的。
  • 对于已经提交过的文件,在没有被修改的情况下再次提交是没有意义的。

在这里插入图片描述

svn update

该命令用于将当前客户端working Copy中的文件/目录更新到与SVN服务端相同版本。

svn update 文件[名]/路径:更新指定的目录或文件

svn update:更新所有能更新的

svn delete

用于删除指定的文件/目录。仅仅删除的是客户端自己的,并不会影响服务端的文件/目录。

只有当前客户端执行了commit命令,才会将这个删除操作同步到SVN服务端。

需要注意:

  • 这个操作在当前客户端本地效果等同于在 window中执行的删除操作,但该windows下的删除通过svn commit 操作无法同步到SVN服务端。

  • 对于目录的svn delete 操作,会将当前目录及其所包含的所有文件/目录全部删除。

svn revert

  • 该命令用于恢复客户端被删除的文件/目录。但这个文件/目录的删除操作不能是被commit过的。

svn list

  • 该命令用于获取当前目录中所包含的所有文件/目录。

svn info

  • 该命令用于获取当前sVN客户端与服务端的相关信息。

svn help

  • 用于获取SVN命令的帮助信息。可以查看所有的SVN命令,也可以获取到指定命令的帮助信息。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 华为SVN客户端是华为公司自主研发的一款版本控制软件。它可以帮助团队进行协作开发,实现代码的版本管理、合并、分支、日志记录等功能,提高团队效率和代码质量。 SVN是Subversion的简称,是一款基于Apache开源项目的版本控制软件。SVN可以帮助开发人员协同工作,实现代码修改的版本管理、变更记录、代码合并等功能。华为SVN客户端就是在SVN基础上进行改进和优化,增加了华为自己的特色功能。例如,它采用分布式的版本控制模式,可以提高团队协作开发的效率和灵活性。 华为SVN客户端还具备多种协议支持,如HTTP、HTTPS、SVN协议、svn+ssh协议等,用户可以灵活地选择适合自己的协议。此外,华为还提供了丰富的使用文档和技术支持,方便用户学习和使用。 总之,华为SVN客户端是一款优秀的版本控制软件,具备强大的功能和丰富的协议支持,可以帮助团队进行高效的协作开发和代码管理。 ### 回答2: 华为svnclient是一种软件版本控制系统客户端,它被广泛应用于软件开发和协作中。该客户端基于Subversion(简称SVN)系统开发,可以帮助团队进行源代码的管理、版本控制、分支和合并等操作,从而提高代码的质量和开发效率。 华为svnclient的主要特点包括:可视化操作界面、高效的版本控制、支持多种协议、灵活的分支和合并、支持跨平台等。它具有易于学习和使用的优点,让开发团队可以更方便地进行代码管理和协作。 此外,华为svnclient还具有安全性高、可靠性好、扩展性强等优点。它可以兼容旧版的SVN系统和集成其他开发工具,还具有完整的日志记录和数据备份等功能,可以帮助团队更好地维护代码库和版本控制系统。 总之,华为svnclient是一款优秀的版本控制系统客户端,它为代码管理和团队协作提供了方便、高效和安全的支持,是现代软件开发必备的工具之一。 ### 回答3: 华为SVN客户端是一款用于版本控制的软件工具。SVN是Subversion的简称,是一款免费的开源版本控制系统,被广泛应用于软件开发领域。华为SVN客户端作为一款专业的软件工具,可以帮助软件开发团队管理和协作代码,有效地避免由于代码版本不同步、丢失等问题导致的项目延误、质量下降等问题。 华为SVN客户端提供了丰富的功能,包括远程代码管理、版本控制、分支合并、代码比对、冲突解决等。通过这些功能,开发者可以高效地管理项目代码,避免因为代码版本不同步、冲突等问题导致的项目延误和质量下降。同时,SVN也提供了团队协作的支持,开发者可以共同管理和修改代码,提高开发效率和质量。 总的来说,华为SVN客户端是一款非常实用和专业的软件工具,它能够帮助开发团队高效地管理和协作代码,避免项目延误和质量下降的问题。对于软件开发人员来说,使用华为SVN客户端不仅能提高开发效率,也能提高项目质量和团队协作能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值