如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)

2023-11-18

前言

一、搭建本地svn服务器

1.建立代码库

2.配置文件修改

3.启动本地svn服务

二、搭建过程中常见问题

如果Mac os升级到10.0以上,自带的svn不支持了怎么办

三、mac本地使用svn软件管理svn库

cornerstone3安装

四、使用Cornerstone会存在的问题

Mac打开应用提示已损坏怎么办?

配置svn server注意事项

SVN不能显示日志log

关于svn服务器文件具体存放路径问题

四、如何用其他设备远程连接到这台Mac搭建的本地svn服务器

如何远程连接这台svn服务器

常见报错问题

总结​​​​​​​


前言

由于开发工作进行到越来越后面,本地计算机储存了大量的历史版本文件数据,给本地电脑产生了很大的存储压力,同时为了规范本地文件的存放和历史版本管理,因此产生了将办公室闲置的一台mac搭建成svn服务器进行各种资料的版本管理工作。本篇文章将详细的讲述从搭建svn服务到远程登录svn服务进行版本管理的全流程。


一、搭建本地svn服务器

Mac是自带svn服务器的,我们需要开启svn的服务器,相应的也是需要建立svn的代码库。(注意:如果你的mac已经升级到Catalina(10.15.*)及以上,那么自带的svn已经不支持使用了,所以针对这种情况,下面章节会详细说明)

1.建立代码库

 //创建一个文件夹,并将文件夹设置为svn的代码库
svnadmin create /Users/Mac/svn/你创建的文件夹              

注意:不能在“/用户名/别的文件夹”下面建立“/svn”,否则localhost会识别不出来,在“/用户名下”建立“/svn”,再在“/svn”下建立svn库,就可以识别出来了。

2.配置文件修改

在finder中打开上面的路径,我们可以看到其中生成了一些文件,我们需要配置conf文件夹下的svnserve.conf、passwd、authz三个文件。(注意:可以不需要在终端用命令编辑,直接用文本编辑器打开这三个文件即可)

配置svnserve.conf :

将下图红色框框里面的内容前的#号去掉即可!(注意:其中anon-access = read最好改为anon-access = none;前者表示匿名只读访问,后者表示禁止匿名访问,只有输入了账号密码才可以)

配置 passwd:

用户名aaa,密码123456

配置 authz

1⃣️users = aaa,bbb表示创建了一个用户组,此用户组包含有aaa和bbb两个用户
2⃣️[/]表示授权的目录路径,这里是根目录
3⃣️users = rw表示给users用户组读写的权限,r表示读,w表示写,如果是给单独用户授权表示为:aaa = rw

3.启动本地svn服务

svnserve -d -r /Users/Mac/svn

注意:路径mac为你自己的电脑用户名

没有报错就是启动成功,可以在监控器中看到该服务进程

二、搭建过程中常见问题

如果Mac os升级到10.0以上,自带的svn不支持了怎么办

问题描述:运行svn指令报错信息如下:
svn: error: The subversion command line tools are no longer provided by Xcode

解决方法:
使用HomeBrew来安装SubVersions
命令行 brew install subversion

结果:

你会发现安装svn有可能会失败,因为软件源的问题,导致安装失败,建议使用国内镜像源即可。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

运行上述命令之后,选择1 ,5 选项,中科院镜像源。

brew install svn

运行上述命令之后,安装svn完成,查看 svn --version 如果还是报错就用下面的命令修复

sudo chown -R $(whoami) $(brew --prefix)/*

运行上述命令,如果还没有报错,继续执行brew install svn进行安装。关于Homebrew国内如何自动安装,可以看知乎专栏文章。

三、mac本地使用svn软件管理svn库

我们在Windows系统中经常使用的tortoise svn是不支持mac系统的,这里推荐两款mac版本的svn客户端,snail svn和cornerstone3 mac版,这里比较推荐后者,前者精简版才是免费的,但是功能不全面,不过界面是中文,后者功能全面一些,使用更加方便,不过是英文版。

cornerstone3安装

下载链接,密码:lz93
下载完成之后进行安装,如果无法下载或者安装存在问题可以用链接2链接3下载安装。
打开cornerstone,具体使用方法很简单这里就不讲了,在链接2和链接3中均有详细介绍该软件的使用方法。

四、使用Cornerstone会存在的问题

Mac打开应用提示已损坏怎么办?

我们在使用mac系统安装或下载一些软件应用时,偶尔会出现“XXX软件已损坏”的情况,下面提供解决流程:

1⃣️MacOS 10.15及以上新系统出现应用提示损坏打不开的解决方法:

      打开终端(屏幕下方Dock栏中的的小火箭图标“启动台”——“其他”——打开“终端”),在终端中粘贴下面命令: sudo xattr -r -d com.apple.quarantine (* quarantine 后面有个空格)

      打开屏幕下方的“访达”—选择左侧边栏的“应用程序”,再找到你需要处理的软件拖拽到命令后面,按回车后输入密码执行,举个例子,比如需要打开sketch应用的命令是:

sudo xattr -r -d com.apple.quarantine /Applications/sketch.app/

2⃣️新的系统为了加强安全机制,默认不允许用户自行下载安装应用程序,只能从Mac App Store里安装应用。那么怎么解决呢?首先, 打开终端(屏幕下方Dock栏中的的小火箭图标“启动台”——“其他”——打开“终端”),然后,输入代码:sudo spctl --master-disable(*master前面为两个短横线)注意红框处是空格。按回车输入自己电脑的密码,按下回车即可。

3⃣️打开系统偏好设置 ,点击安全性与隐私,如果显示任何来源,则流程完成。

4⃣️如果出现类似“打不开“xxxx”,因为它来自身份不明的开发者”的情况,还可以,在“系统偏好设置—安全性与隐私—通用—允许从以下位置下载的应用”选择“仍要打开”,让系统同意应用运行即可。

配置svn server注意事项

点击add repository,选择svn server并填写如下图的内容:
Server:本地服务器填写localhost,局域网写ip地址,例如:192.168.12.123

注意:不能在“/用户名/别的文件夹”下面建立“/svn”,否则localhost会识别不出来,在“/用户名下”建立“/svn”,再在“/svn”下建立svn库,就可以识别出来了。
respository path:写“/svn/”后面的内容(注意:是svn后面的目录)
最下面写在passwd中配置过得密码,最后add就好了,

SVN不能显示日志log

现象:Cornerstone SVN使用起来都正常,就是不能显示log日志,报错“could not contact repository to read the latest log entries”。(如果按照本篇文章从头到尾操作,这里就不会出现这种情况。)

解决:把svnserve.conf里的anon-access = read改成anon-access = none,或者新增anon-access = none,都可以。= read 表示匿名访问的时候是只读的;= none 表示需要账户和密码才能访问。

关于svn服务器文件具体存放路径问题

SVN服务器版本库有两种格式:FSFS和BDB
把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。
如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息。

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

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

四、如何用其他设备远程连接到这台Mac搭建的本地svn服务器

如何远程连接这台svn服务器

进行到这里,最后我们来讲一下怎么通过其他设备通过svn工具,远程链接到这台Mac svn服务器并且达到资源文件版本管理的工作。

先决条件:Mac和我们使用的其他设备必须在同一个局域网下。如果不在同一个局域网之下,就需要用到其他手段实现外网到内网的穿透,以达到外网也可以访问处于局域网中的这台Mac服务器。(内网穿透工具推荐:小米球和echosite,这部分内容可以看我相关文章或者自行百度)

查看这台Mac svn服务器的局域网IP:ifconfig

其他设备:其他设备上的svn工具配置好IP和路径,输入账号密码就可以连上这台svn服务器啦。

常见报错问题

我自己在windows设备上装的svn工具是TortoiseSVN,在正常的配置ip和路径,输入账号密码之后,报错:由于目标机器积极拒绝,无法连接。

这种情况存在两种原因:

1⃣️远程svn服务未启动。我们可以在这台mac设备的活动监视器里面查看svn服务是否还存在。

2⃣️svn仓库路径搞错了。可以在svn下建立很多仓库:

建立test仓库,访问的时候:svn://localhost/test

建立oa,则访问的时候 svn://localhost/oa


总结

这篇文章到这里就结束了,针对利用mac设备搭建svn服务器需要注意的一系列问题应该都列出来了,仅供大家学习参考。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器) 的相关文章

随机推荐

  • 什么是多态?对于多态的理解....

    什么是多态 我们都知道面向对象有四个基本特性 抽象 封装 继承 多态 概括可以理解为 抽象 封装 继承 是多态的基础 多态是抽象 封装 继承的表现 多态 是Java中非常重要的一部分 简单理解 不同类的 对象 对同一消息 做出了不同的响应就
  • 电脑重装系统(U盘)

    Windows10 1 首先需要准备一个8G或以上的U盘 空的 2 前往浏览器下载windows安装工具 网址如下 https www microsoft com zh cn software download windows10 3 下载
  • CentOS7 挂载磁盘出错mount: /dev/sdb is write-protected, mounting mount: unknown filesystem type '(null)'

    报错信息如下 root localhost mount dev sdb image mount dev sdb is write protected mounting read only mount unknown filesystem t
  • 掌握Python的X篇_19_函数的定义与调用

    文章目录 1 函数 2 函数的定义 3 函数调用 1 函数 在Python 函数是一种基本的编程接口 因为函数的调用只关心参数输入和返回值 所以使得我们可以更好地进行编程分工 以下程序的功能是得到输入的三个数字的平方值 根据前面所学的话 可
  • Blender编程入门

    在本教程中 我们将学习一些 Blender 脚本技术 比如如何使用代码处理 操作 复制和动画网格图元 要结合所有这些技术 我们将创建一个波浪形的锥形图案 一个看起来很酷的动画 你可以将其转换为循环 GIF 我将使用bpy data模块中的一
  • 一位程序员工作10年总结的13个忠告

    原文网址 http zhangxpower iteye com blog 1145448 展望未来 总结过去10年的程序员生涯 给程序员小弟弟小妹妹们的一些总结性忠告 走过的路 回忆起来是那么曲折 把自己的一些心得体会分享给程 序员兄弟姐妹
  • oracle数据库存储过程基本语法

    oracle数据库存储过程 一 基本语法 数据类型 一 字符类型 字符串数据类型还可以依据存储空间分为固定长度类型 CHAR 和可变长度类型 varchar2 nvarchar2 两种 1 char类型 定长字符串 会用空格填充来达到器最大
  • WSL 修改默认用户

    通常可以通过以下命令来指定进入 wsl 的时候使用的用户 wsl u
  • STM32驱动HX711称重模块

    使用模块如下图所示 使用单片机为STM32C8T6 引脚DT gt PB7 SCK gt PB6 使用通道A 下面是驱动程序 void GPIO Weigh Init void GPIO InitTypeDef GPIO InitStruc
  • 设计模式-单一职责原则介绍与理解

    描述 一个类应该专注于实现一个功能 好处 便于代码复用 举例 俄罗斯方块游戏 首先可以想到的是游戏逻辑与界面的分离 也就是说逻辑一个类 界面部分一个类 这样做的好处就是我们可以复用游戏逻辑的代码 例如我们用java写了一个基于PC端的俄罗斯
  • JAVA实现压缩解压文件

    1 源码运行前准备好文件夹 2 源码 package com els modules inquiry service impl import java io File import java io FileInputStream impor
  • P2PSim中重要函数的说明

    环境 RedHat9上安装的P2Psim0 3 目的 在P2Psim使用Vivaldi协议仿真 现状 主程序代码中关于vivaldi协议的部分注释掉了 思路 从主函数分析代码 找到原因 vivaldi协议主函数是vivalditest C
  • windows server 2012R2 部署安装 hmail

    windows server 2012R2 部署安装 hmail 环境说明 系统 windows server2012 R2软件版本 hMailServer 5 6 7 B2425 exe 邮件客户端 foxmail7 2版本 加密工具 h
  • Python21天打卡Day20-可变参数、关键字参数

    在 Python 中 可变参数允许函数接受任意数量的参数 这些参数被封装成一个元组 Tuple 或列表 List 并作为参数传递给函数 Python 中有两种类型的可变参数 args 用于传递可变数量的位置参数 Positional Arg
  • 【Docker系列】从头学起 Docker——docker run 命令详解

    文章目录 作用 语法格式 docker run 执行流程 options 说明 实际例子 例一 例二 例三 例四 例五 例六 例七 例八 总结 例九 作用 创建一个新的容器并运行一个命令 语法格式 docker run OPTIONS IM
  • springboot项目打包(exe+jdk/jre+mysql)跨平台一键安装

    SpringBoot项目打包 exe jdk jre mysql 跨平台一键安装 1 Spring Boot将javaFX应用打包为jar包 1 1 pom xml安装Spring boot maven plugin
  • 【MyBatis-Plus】详解Wrappers.<T> lambdaQuery()以及常用过滤方法

    Wrappers
  • Java 动态代理作用是什么?

    主要用来做方法的增强 让你可以在不修改源码的情况下 增强一些方法 在方法执行前后做任何你想做的事情 甚至根本不去执行这个方法 因为在 InvocationHandler的invoke方法中 你可以直接获取正在调用方法对应的 Method对象
  • linux kernel --component组件用法

    kernel component组件用法 linux component组件架构分析
  • 如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)

    前言 一 搭建本地svn服务器 1 建立代码库 2 配置文件修改 3 启动本地svn服务 二 搭建过程中常见问题 如果Mac os升级到10 0以上 自带的svn不支持了怎么办 三 mac本地使用svn软件管理svn库 cornerston