阿里云centos7.2 搭建SVN(linux windows)客户端

简介: 阿里云centos7.2 搭建SVN(linux windows)客户端 摘要: Subversion(SVN) 是一个开源的版本控制系統,被广泛用于协同开发。本文教你怎样快速搭建和使用SVN版本控制系统,并进行代码的提交、修改和恢复版本。


阿里云centos7.2 搭建SVN(linux windows)客户端 


摘要: Subversion(SVN) 是一个开源的版本控制系統,被广泛用于协同开发。本文教你怎样快速搭建和使用SVN版本控制系统,并进行代码的提交、修改和恢复版本。

简介

Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

概念

  • repository(源代码库):源代码统一存放的地方

  • Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份

  • Commit(提交):当你已经修改了代码,你就需要Commit到repository

  • Update (更新):当你已经Checkout了一份源代码,Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) —>作出自己的修改并调试成功 —> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。

如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。


两种方法安装

  • 第一种

点击免费下载阿里云SVN版本控制镜像。

SVN版本控制(Centos 64位 | SVN)


SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion

完成之后,登录”ECS 管理控制台”,在左边导航栏里,单击”实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在”IP 地址”列获取该实例的公网 IP 地址。

  • 第二种

手动安装


1. 环境

   centos7

2. 安装svn

yum install subversion

   查看版本

svnserve –version


wKiom1lA0yGSfs0GAAE4cQ1dGZQ767.png-wh_50



3. 创建版本库

   

先建目录


mkdir /var/svn


创建版本库


cd /var/svn
svnadmin create /var/svn/svnrepos

cd svnrepos会看到自动生成的版本库文件:
conf  db  format  hooks  locks  README.txt

wKiom1lA0zDDVfcJAAD6APseGDw009.png-wh_50


subversion目录说明:

  • db目录:就是所有版本控制的数据存放文件。

  • hooks目录:放置hook脚本文件的目录。

  • locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。

  • format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。

  • conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。

进入conf目录(该svn版本库配置文件)cd conf/

  • authz 文件是权限控制文件

  • passwd 是帐号密码文件

  • svnserve.conf SVN服务配置文件


设置帐号密码 vi passwd

[users]块中添加用户和密码,格式:帐号=密码,如suzhan=redhat


wKioL1lA0z2xGvv_AACy3tfweL4181.png-wh_50


设置权限 vi authz

在末尾添加如下代码:

[/]

suzhan=rw (r:读,w:写)


wKioL1lA00yhovcyAAAuBXsILJM142.png-wh_50


修改svnserve.conf文件 vi svnserve.conf



打开下面的几个注释:


    anon-access = read #匿名用户可读


    auth-access = write #授权用户可写


    password-db = passwd #使用哪个文件作为账号文件


    authz-db = authz #使用哪个文件作为权限文件


    realm = /var/svn/svnrepos # 认证空间名,版本库所在目录


wKiom1lA01ni4P0dAANYx5699iE672.png-wh_50


启动svn版本库


svnserve -d -r /var/svn/svnrepos


停止SVN命令


killall svnserve



ps -ef |grep svn 查看服务是否开启。


62f29076e59fe4209be15276d2c6d9d0.png-wh_



注意!

svn有两种存储方式:BDB和FSFS,目前用的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以命名的文件,如:0、1、2、3、4......,那个就是了。

svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件


8617e09c0c7c7046ca2cbb8688a2d560.png-wh_




在linux上测试(客户端)

如果是用linux当客户端的话连接公司的"码云"或者是公司自己搭建的服务器 在linux上安装svn就可以了一条yum安装命令的svn就可以了。

操作如下   svn co http://www.51ceo.org.com

            svn co svn:192.168.1.1 /winne

8e02c22fd52277c754c42890738b7c72.png-wh_

 

之后再你要更新的路径更新svn就可以了 如果你要更新/etc/www/的项目的话注意在这个路径下更新否则会出现 root/没有权限以及 提醒你更新svn版本的等;

wKiom1lA1-nTWGyPAAAjDr3BAdM786.png-wh_50


之后就会刷新你的项目了

wKioL1lA2CWCWSMSAAAazmmVlVU057.png-wh_50




在windows上测试(客户端)

如果没有TortoiseSVN客户端,可以去这里 下载:tortoisesvn.net/downloads.html, 根据从SVN服务器下载项目自己的实际情况下载对应版本。

在你的本地项目文件夹或随便一个地方,右键空白处弹出菜单,选择 SVN检出。然后,通过从SVN服务端获取的资源库URL+具体的项目文件夹名下载相应项目,并可以知道下载项目的保存位置。

wKioL1lA0-KTEigGAAAfBbP3wMs852.png-wh_50

wKioL1lA1CbyMjOUAAHtYM4RtOQ889.png-wh_50

第一次登陆需要输入密码,一切以passwd文件里面的账户密码为主!

wKiom1lA1GaQNdB_AAB9iVbXKEY558.png-wh_50

对项目的修改与提交

1. 把项目下载到本机后,其实就是一个普通的项目文件而已,你可以在里面添加文件、修改文件、删除文件等等。

2. 提交修改 在项目文件空白处右键,选择 SVN提交 。

wKiom1lA1HGxtwmEAAHpA4YUeRU113.png-wh_50

然后,输入 本次提交的版本更新信息(所作修改的注释)、勾选要提交的操作内容,点击 确定,即可把本机项目提交到SVN服务器资源库,覆盖掉资源库项目从而实现更新。

如果发生提交冲突,即两人都提交修改,后提交者由于版本落后会提交失败。这时可以先把自己的项目备份,然后从服务端下载最新的项目,再把自己的项目覆盖到本地项目文件夹,最后SVN提交即可成功提交。

我刚刚删掉了一个文件,这里就会显示: 

wKioL1lA1JfxlFbEAAFMbiDAAFE868.png-wh_50

3. 获取更新

如果别人修改了SVN服务端资源库上的项目,你想下载最新的项目,则在 本机项目文件空白处单击鼠标右键,选择 SVN更新 ,即可自动完成下载,并会提示所作的更新有哪些。

注意:在原项目文件夹内选择SVN更新的话,会自动覆盖掉原有内容。建议:先备份,再更新,防止自己本来的项目内容丢失。

wKioL1lA1LigXmrzAACEnofQlVg517.png-wh_50

4. svn提供历史还原功能

首先打开一个文件夹,右键检出数据

wKioL1lA1NTxeDQ8AAFSe7Lvzsc118.png-wh_50

然后删掉数据。这时如果不点提交的话,可以直接点鼠标右键还原即可。

wKioL1lA1PfSC-_dAAGUf4ea-Gc325.png-wh_50

如果点击提交了,那么系统库里的数据也会得到同步,系统也会把它存的数据删掉。

wKioL1lA1RvCgVtaAACWRdqh9rY171.png-wh_50

这时点击svn还原是没有用的,需要查看日志,看看是删掉了什么东西。

wKiom1lA1TzQybspAACWRdqh9rY208.png-wh_50

然后把删掉的文件保存版本到删掉的位置,

wKioL1lA1VzgAawnAAA5lZG6Y0o011.png-wh_50


打开原文件夹,点击提交,系统库里的数据就和这个文件同步了。


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
30天前
|
Ubuntu 安全 Linux
|
25天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
207 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
14天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
81 1
Linux系统之Centos7安装cockpit图形管理界面
|
1月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
64 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
1月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
680 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
1月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
1月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
1月前
|
网络协议 安全 Linux
阿里云国际上如何检查 Linux 上正在使用哪些端口
阿里云国际上如何检查 Linux 上正在使用哪些端口
|
1月前
|
存储 Linux 编译器
cmake的单目录和多目录的使用(Linux和Windows)
本文介绍了在Windows和Linux平台上使用CMake构建单目录和多目录项目的步骤,包括如何配置CMakeLists.txt文件以及如何生成和使用可执行文件、库文件。
28 2