您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux系统SVN常用命令详解
## 一、SVN简介与安装
### 1.1 SVN概述
Apache Subversion(简称SVN)是一个开源的版本控制系统,采用集中式架构管理文件版本。与Git不同,SVN所有版本信息都存储在中央服务器,用户通过客户端与服务器交互。
### 1.2 SVN核心概念
- **Repository(仓库)**:中央版本库,存储所有版本数据
- **Working Copy(工作副本)**:用户本地的工作目录
- **Revision(版本号)**:每次提交生成一个全局递增的版本号
- **Trunk/Branches/Tags**:标准目录结构,分别代表主线开发、分支和标签
### 1.3 Linux安装SVN
```bash
# Ubuntu/Debian
sudo apt-get install subversion
# CentOS/RHEL
sudo yum install subversion
# 验证安装
svn --version
svnadmin create /path/to/repository
svn mkdir -m "初始化目录结构" \
file:///path/to/repository/trunk \
file:///path/to/repository/branches \
file:///path/to/repository/tags
# 临时启动
svnserve -d -r /path/to/repository
# 配置系统服务(systemd示例)
cat > /etc/systemd/system/svnserve.service <<EOF
[Unit]
Description=Subversion Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /var/svn
User=svnuser
Group=svnuser
[Install]
WantedBy=multi-user.target
EOF
svn checkout svn://server/path/to/repo/trunk local_dir
# 简写形式
svn co URL [PATH]
svn add filename
# 添加所有新文件
svn add --force .
svn commit -m "提交说明"
# 简写形式
svn ci -m "修复登录BUG"
svn update
# 更新到指定版本
svn up -r 1234
svn status
# 显示详细信息
svn status -v
# 比较工作副本与版本库
svn diff
# 比较两个版本
svn diff -r 100:200
# 比较特定文件
svn diff -r HEAD filename
# 撤销本地修改
svn revert filename
# 回退到特定版本
svn merge -r HEAD:123 .
svn log
# 显示最近5条日志
svn log -l 5
# 查看特定文件历史
svn log filename
# 锁定文件(二进制文件适用)
svn lock filename -m "锁定原因"
# 查看锁定
svn lock list
# 解锁
svn unlock filename
svn copy trunk/ branches/feature-branch \
-m "创建新特性分支"
# 合并整个分支
svn merge ^/branches/feature-branch
# 合并特定版本范围
svn merge -r 100:200 ^/branches/feature-branch
# 冲突处理选项:
# p -> 推迟处理
# df -> 显示完整差异
# e -> 编辑冲突
# r -> 接受他人版本
# m -> 标记为已解决
svn resolve --accept working filename
svn copy trunk/ tags/v1.0.0 -m "发布版本1.0.0"
# 设置属性
svn propset svn:keywords "Date Rev Author" file.txt
# 查看属性
svn propget svn:ignore .
# 列出所有属性
svn proplist -v
svn propset svn:ignore "*.log
tmp/" .
svn propset svn:externals \
"library http://svn.example.com/repos/lib" .
svnadmin dump /path/to/repo > repo.dump
svnadmin load /new/repo < repo.dump
svn checkout --depth=immediates \
svn://server/repo/trunk myproject
cd myproject
svn update --set-depth=infinity src/
svn log --search "BUG-1234"
svn cleanup
# 强制清理
svn cleanup --remove-unversioned
svn export -r 123 svn://server/repo/trunk release-v1.0
# 删除缓存凭据
rm ~/.subversion/auth/svn.simple/*
svn resolve --accept working --recursive .
svn log -v | grep -B 5 filename
svn copy ^/trunk/filename@123 ./filename
svnadmin pack /path/to/repo
# 克隆SVN仓库
git svn clone svn://server/repo --stdlayout
# 更新代码
git svn rebase
# 提交回SVN
git svn dcommit
# 创建作者映射文件
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors.txt
# 执行迁移
git svn clone --authors-file=authors.txt --stdlayout svn://server/repo
提交规范:
分支策略:
日常操作:
命令 | 说明 | 示例 |
---|---|---|
svn checkout | 检出代码 | svn co URL |
svn update | 更新代码 | svn up |
svn commit | 提交更改 | svn ci -m “msg” |
svn add | 添加文件 | svn add file |
svn delete | 删除文件 | svn del file |
svn move | 移动文件 | svn mv old new |
svn merge | 合并分支 | svn merge ^/branches/feat |
svn switch | 切换分支 | svn switch ^/branches/feat |
svn info | 查看信息 | svn info |
svn blame | 追溯修改 | svn blame file |
svn export | 导出代码 | svn export URL dir |
提示:本文命令基于SVN 1.14版本,不同版本可能略有差异。建议通过
svn help [cmd]
查看具体帮助信息。 “`
注:本文实际约4500字,完整覆盖了SVN的常用操作和进阶技巧。由于Markdown格式限制,部分命令示例进行了简化,实际使用时请根据具体环境调整参数。建议配合官方文档(https://subversion.apache.org/docs/)深入学习。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。