linux系统SVN快速上手指南

发布于:2025-06-24 ⋅ 阅读:(17) ⋅ 点赞:(0)

1 SVN简介

Subversion(简称 SVN)是一款开源的集中式版本控制系统,专为高效管理代码和文件版本而设计。在 Linux 环境中,SVN具有稳定性好、与系统工具的无缝集成以及低资源消耗等优势,它采用经典的客户端-服务器架构,所有版本历史集中存储在中央仓库(repository),开发者通过标准的checkout-edit-commit工作流程进行协作。

2 SVN安装

SVN的安装在Linux上十分简单,只需通过apt或yum安装它的客户端包即可,表示apt或yum都可以安装SVN客户端:

第一步,可以使用命令检查系统是否安装SVN

大多数GNU/Linux发行版系统自带SVN,所以可能SVN已经安装在系统上,需要检查系统是否安装SVN。

命令:rpm -qa subversion

若结果显示“subversion-1.7.14-16.el7.x86_64”,则可以使用命令删除老版本,然后再安装SVN。

命令:yum -y remove subversion

yum -y install subversion

若结果显示“bash: svn: command not found”,则可以直接使用命令进行安装。

命令:yum -y install subversion

3 SVN使用

SVN 的命令格式遵循标准的 Unix 风格,结构清晰且具有一致性。基本格式如下:

svn <子命令> [选项] [参数]

一些常用的svn命令如下

基础操作

命令

别名

作用

示例

checkout

co

从版本库检出代码到本地(含.svn元数据)

svn co http://svn.example.com/repo/trunk

update

up

更新本地代码至最新版本

svn upsvn up -r 123(指定版本)

commit

ci

提交本地修改到版本库

svn ci -m "修复BUG"

status

stat,st

查看文件/目录状态(修改、冲突等)

svn statussvn st -u(显示更新信息)

revert

-

撤销本地未提交的修改

svn revert file.txtsvn revert . --recursive


文件与目录管理

命令

别名

作用

示例

add

-

添加文件/目录到版本控制

svn add file.txtsvn add dir/ --force

delete

del,rm

删除文件/目录(需提交生效)

svn rm file.txtsvn rm http://svn.example.com/file.txt -m "删除文件"

copy

cp

复制文件/目录(用于分支/标签)

svn cp trunk/ branches/my-branch -m "创建分支"

move

mv,rename

移动或重命名文件/目录

svn mv old.txt new.txt

mkdir

-

创建目录(本地或版本库)

svn mkdir new-dirsvn mkdir http://svn.example.com/new-dir -m "创建目录"


查看与比较

命令

别名

作用

示例

log

-

查看提交历史

svn logsvn log -v -l 5(显示最近5条详细日志)

diff

di

比较差异

svn diff(工作副本 vs 版本库)或 svn diff -r 100:200(版本间比较)

cat

-

查看文件内容(不下载)

svn cat http://svn.example.com/file.txt

list

ls

列出版本库目录内容

svn ls http://svn.example.com/trunk

blame

annotate,ann

显示文件的逐行修改作者

svn blame file.txt


分支与合并

命令

别名

作用

示例

merge

-

合并分支或版本

svn merge ^/branches/my-branch(合并分支到当前目录)

mergeinfo

-

查看合并信息

svn mergeinfo ^/branches/my-branch --show-revs eligible

switch

sw

切换工作副本到不同分支/标签

svn switch ^/branches/dev


属性管理

命令

别名

作用

示例

propset

pset,ps

设置文件/目录属性

svn propset svn:keywords "Date Rev" file.txt

propget

pget,pg

获取属性值

svn propget svn:ignore .

proplist

plist,pl

列出属性

svn proplist file.txt

propdel

pdel,pd

删除属性

svn propdel svn:executable file.txt


高级操作

命令

别名

作用

示例

export

-

导出无版本控制的代码副本

svn export http://svn.example.com/trunk ./release

import

-

将本地目录导入版本库

svn import ./project http://svn.example.com/repo -m "初始导入"

ock/unlock

-

锁定/解锁文件(防止冲突)

svn lock file.txt -m "正在编辑"

resolve

-

标记冲突已解决

svn resolve file.txt --accept working

cleanup

-

修复工作副本异常

svn cleanup

relocate

-

修改版本库根URL(服务器迁移时使用)

svn relocate http://old-url http://new-url


帮助与信息

命令

作用

示例

help

?,h

查看命令帮助

svn help commit

info

-

显示文件/目录版本信息

svn infosvn info http://svn.example.com/trunk

upgrade

-

升级工作副本格式(SVN版本升级后)

svn upgrade


其他实用命令

命令

别名

作用

示例

changelist

cl

将文件分组到变更列表

svn changelist fix-files file1.txt file2.txt

patch

-

应用补丁文件

svn patch my.patch

先记住这些常用命令把svn用起来,遇到问题后再针对性的解决,这样学起来更快

如果想要对svn有更加详细的了解,可以参考svn官方手册(纯英文文档,我相信你不会感兴趣的QAQ)Version Control with Subversion - For Subversion 1.7


网站公告

今日签到

点亮在社区的每一天
去签到