Mac系统内置了svn版本控制软件,但是需要安装xcode开发工具才能使用。
1. 在App Store中搜索Xcode并安装,大小为4GB左右。一般安装好这个软件就已经集成好了svn,打开控制台输入
svn --version
svn --version
如果出现下面信息表示安装成功
XXXXX@192 homebrew-core % svn --version
svn,版本 1.14.0 (r1876290)
编译于 Jul 4 2020,21:17:27 在 x86_64-apple-darwin19.5.0
Copyright (C) 2020 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
可使用以下的版本库访问模块:
* ra_svn : 使用 svn 网络协议访问版本库的模块。 - 使用 Cyrus SASL 认证
- 处理“svn”方案
* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- using serf 1.3.9 (compiled with 1.3.9)
- 处理“http”方案
- 处理“https”方案
The following authentication credential caches are available:
* Mac OS X Keychain
如果出现这个提示证明没有安装成功需要通过命令行进行安装:
svn: error: Failed to locate 'svn'. svn: error: The subversion command line tools are no longer provided by Xcode.
2. 通过
brew
命令行进行安装
subversion
brew
subversion
brew
介绍:全称
Homebrew
:是一款Mac OS平台下的软件包管理工具,类似于前端开发中用到的nodjs下的
npm
包管理工具;拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
-
首先需要下载
homebrew
, 通过使用国内镜像进行下载:
// 官网安装命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// gitee安装地址
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
通过上面的命令得到下面提示
这里我们选择一个国内镜像输入相关序列号然后回车开始安装。
安装完成以后我们就可以通过
brew
命令安装我们需要的软件了,由于
homebrew
包管理工具的所有包镜像都是国外的,所以我们在下载软件包的时候比较慢,这个时候我们可以更改镜像地址为国内来实现快速下载,方法:
平时我们执行 brew 命令安装软件的时候,跟以下三个仓库有关,我们把这三个仓库的镜像地址改为国内的阿里巴巴就可以了
brew.git
homebrew-core.git
homebrew-bottles
- 替换/还原 brew.git 仓库地址
# 替换成阿里巴巴的 brew.git 仓库地址:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
#=======================================================
# 还原为官方提供的 brew.git 仓库地址
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
- 替换/还原 homebrew-core.git 仓库地址
# 替换成阿里巴巴的 homebrew-core.git 仓库地址:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
#=======================================================
# 还原为官方提供的 homebrew-core.git 仓库地址
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git
- 替换/还原 homebrew-bottles 访问地址
这个替换,需要看您的mac系统使用的
shell
版本
echo $SHELL
# 如果你的输出结果是 /bin/zsh,参考下方 zsh 终端操作方式
# 如果你的输出结果是 /bin/bash,参考下方 bash 终端操作方式
- zsh 终端操作方式
# 替换成阿里巴巴的 homebrew-bottles 访问地址:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
#=======================================================
# 还原为官方提供的 homebrew-bottles 访问地址
vi ~/.zshrc
# 然后,删除 HOMEBREW_BOTTLE_DOMAIN 这一行配置
source ~/.zshrc
- bash 终端操作方式
# 替换 homebrew-bottles 访问 URL:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
#=======================================================
# 还原为官方提供的 homebrew-bottles 访问地址
vi ~/.bash_profile
# 然后,删除 HOMEBREW_BOTTLE_DOMAIN 这一行配置
source ~/.bash_profile
3. 通过执行上边的步骤,接下来我们就可以使用
// 安装svn软件
brew install svn
4. 安装完毕以后可以再命令行进行svn的操作
检出命令:
// 整个项目检出
svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
// 检出指定版本
svn co http://路径(目录或文件的全路径) [本地目录全路径] [--revision] --username 用户名 --password 密码
命令说明:一般都是
svn
空格后边再加执行命令上边是检出命令
checkout
,
co
是简写形式,然后空格后边跟服务器上的
svn
地址或者
http
地址,然后空格后边再跟要检出下载到的本地地址
不用添加中括号
,然后空格后边固定的
--username
命令空格后边加上用户名,然后空格后边固定的
--password
密码
导出命令:
// 导出(导出一个干净的不带.svn文件夹的目录树********)**
svn export [-r 版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn export [-r 版本号] svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名******
添加文件到svn版本
// 添加指定文件
svn add test.php
// 添加当前文件夹下全部文件
svn add * 这个*表示全部文件
提交文件
// 提交所在目录下的所有文件,也就是上传
svn ci * -m "提交说明"
// or
svn commit * -m "提交说明"
更新文件
// 更新所在目录下的所有文件,也就是下载
svn update
// 更新某个文件到指定版本
svn updae -r 200 test.cpp 将test.cpp还原到修正版本(revision)200
删除文件
// 删除单个文件
svn delete 文件名
// 删除文件夹
svn delete svn://路径(目录或文件的全路径) -m "删除备注信息文本"
// 删除完以后提交删除操作
svn ci -m "删除备注信息文本"
查看状态
svn status
// or 简写
svn st
// 状态结果文件名前
// ?:表示不在svn的控制中;
// A:表示已经添加到svn控制中;
// M:表示内容被修改;
// C:表示发生冲突;
查看文件信息
//查看单个文件信息
svn info 文件名称
//例如:
qiweiguo@macbook-pro qwguo % svn info a.html
// 输出结果:
路径: a.html
名称: a.html
工作副本根目录: /Users/qiweiguo/work/ev123/vip_test
URL: svn://101.201.114.81/test/qwguo/a.html
Relative URL: ^/qwguo/a.html
版本库根: svn://101.201.114.81/test
版本库 UUID: 3d1642ed-e107-4795-9386-4706ea55b8da
节点种类: 文件
调度: 增加
//查看当前文件夹信息
svn info
// 例如:
qiweiguo@macbook-pro auto % svn info
// 输出结果:
路径: .
工作副本根目录: /Users/qiweiguo/work/ev123/vip_test
URL: svn://101.201.114.81/test/auto
Relative URL: ^/auto
版本库根: svn://101.201.114.81/test
版本库 UUID: 3d1642ed-e107-4795-9386-4706ea55b8da
版本: 175754
节点种类: 目录
调度: 正常
最后修改的作者: zhangqiang
最后修改的版本: 175514
最后修改的时间: 2020-07-07 10:40:41 +0800 (二, 2020-07-07)
查看日志
// 单个文件日志
svn log 文件名
// 查看当前文件夹日志
svn log
比较差异
// 比较单个文件修改的与基础版本比较差异
svn diff test.php
// 比较指定版本差异
svn diff -r 200:201 test.php