跳到主要内容

SVN版本控制

参考教程:SVN客户端安装与常用操作(超详细)_svn安装教程-CSDN博客

SVN 教程 | 菜鸟教程

Subversion,集中式版本控制系统,许多 2010 年前的开源项目(如早期 Apache 项目)仅支持 SVN 托管,SVN 支持显式文件锁定(svn lock),适合二进制文件协作(如 PSD/AI 设计稿),

Git与SVN对比

对比维度GitSVN
版本模型分布式版本控制(Distributed VCS),每个开发者本地有完整代码库副本集中式版本控制(Centralized VCS),依赖中央服务器存储完整版本
工作流程本地提交 → 分支协作 → 远程同步中央服务器 → 本地修改 → 提交到中央服务器
离线操作完全支持,本地可提交、查看历史、创建分支仅支持本地修改,提交 / 查看历史需联网
  1. 分支创建与管理
  • Git:分支创建为轻量级操作(仅创建指针),耗时毫秒级,支持并行开发多特性分支(如feature/login fix/bug123
  • SVN:分支为文件复制操作,需占用大量存储空间,分支管理成本高
  1. 协作模式
  • Git:支持分布式协作,开发者可从任意远程仓库拉取代码,通过pull request机制审核合并
  • SVN:所有变更需提交到中央服务器,协作依赖单一代码库,冲突解决更复杂

Git的主要缺点在于:1. 大文件存储: 普通 Git 对大文件不友好(每次修改需存储完整差异),推荐使用 Git LFS(Large File Storage)将大文件单独管理 2. 二进制文件:对二进制文件控制精度低。

TortoiseSVN

一、TortoiseSVN 客户端安装

(一)下载资源

  1. 官方下载地址:TortoiseSVN 下载页面

  2. 下载内容:

    • 主程序安装包:根据操作系统位数选择对应版本(32-bit/64-bit),当前最新稳定版为 1.14.1
    • 语言包:在下载页面下方选择中文(简体)语言包,需与主程序位数匹配(64-bit 系统选择 64 Bit 语言包)

(二)安装步骤

  1. 安装顺序:必须先安装主程序,再安装语言包,否则会报错

  2. 主程序安装:

    • 双击主程序安装包,启动安装向导
    • 连续点击 “下一步”,至 “自定义安装” 界面,可默认安装路径或自行修改
    • 保持默认功能选项,点击 “下一步”,直至安装完成
  3. 语言包安装:

    • 双击语言包安装文件
    • 按照向导提示,点击 “下一步” 完成安装
  4. 语言设置:

    • 在桌面空白处右键,选择 “TortoiseSVN”→“设置”
    • 在 “常规设置” 中,选择 “语言” 为 “中文(简体)(中国)”
    • 点击 “确定” 生效

(三)安装验证

  • SVN 客户端为系统右键菜单插件,无独立桌面程序
  • 验证方式:桌面空白处右键,查看是否出现 “SVN 检出”“TortoiseSVN” 等菜单选项

二、核心概念说明

  1. 版本库(Repository):SVN 服务器端存储项目所有版本数据的中央仓库,通过 URL 唯一标识
  2. 工作副本(Working Copy):从服务器下载到本地的项目文件副本,用户在本地对文件的修改需提交至服务器
  3. .svn 隐藏目录:记录工作副本的基准版本和更新时间戳,不可手动修改或删除,否则会破坏本地工作副本

三、项目检出(从服务器下载项目)

(一)准备工作

  1. 获取版本库 URL:从 SVN 服务器管理员处获取,或在 VisualSVN Server 中右键目标项目文件夹,选择 “Copy URL to Clipboard” 复制
  2. 示例 URL 格式:https://DESKTOP-M4DJR1S/svn/fuxi/fuxi_SVN

(二)检出操作步骤

  1. 选择本地存储目录:在本地新建文件夹(或选择任意空白目录)

  2. 启动检出功能:右键目录空白处→选择 “SVN 检出 (K)...”

  3. 配置检出参数:

    • 版本库 URL:粘贴复制的服务器项目 URL
    • 检出至目录:默认当前目录,可点击浏览修改存储路径
    • 检出深度:默认 “全递归”(下载所有层级文件)
    • 版本选择:默认 “最新版本 (H)”,如需指定版本可选择 “版本 (R)” 并输入版本号
  4. 身份认证:输入 SVN 服务器分配的用户名和密码,可勾选 “保存认证 (S)” 避免重复输入

  5. 完成验证:弹出 “检出完成!” 提示,查看本地目录是否成功下载项目文件

四、常用操作指南

(一)文件 / 目录添加(Add)

场景:本地新建文件 / 目录后,添加到版本控制

  1. 操作方式一(先加入变更列表):

    • 右键目标文件 / 目录→“TortoiseSVN”→“添加”
    • 在弹出的对话框中确认添加的文件,点击 “确定”
    • 右键所在目录→“SVN 提交 (C)...”
    • 填写提交说明,勾选待提交文件,点击 “确定”
  2. 操作方式二(直接提交):

    • 右键目标文件 / 目录→“SVN 提交 (C)...”
    • 在提交对话框中勾选待添加的文件(状态显示为 “已增加”)
    • 填写提交说明,点击 “确定”

(二)文件 / 目录删除(Delete)

场景 1:文件未加入版本控制

  • 直接使用操作系统的删除功能(右键删除或按 Delete 键)

场景 2:文件已加入版本控制

  1. 操作方式一(SVN 菜单删除):

    • 右键目标文件 / 目录→“TortoiseSVN”→“删除”
    • 右键所在父目录→“SVN 更新 (U)...”
    • 再次右键父目录→“SVN 提交 (C)...”
    • 勾选已删除的文件,填写提交说明,点击 “确定”
  2. 操作方式二(系统删除后提交):

    • 直接删除本地文件
    • 右键所在父目录→“SVN 更新 (U)...”
    • 右键父目录→“SVN 提交 (C)...”
    • 在变更列表中勾选被删除的文件(状态显示为 “已删除”),点击 “确定”

(三)文件 / 目录改名(Rename)

  1. 右键目标文件 / 目录→“TortoiseSVN”→“改名”
  2. 在弹出的对话框中输入新名称,点击 “OK”
  3. 右键所在目录→“SVN 提交 (C)...”
  4. 勾选改名后的文件,填写提交说明,点击 “确定”

(四)版本回退(SVN Revert / 更新至版本)

场景 1:放弃本地未提交的修改(Revert)

  • 右键目标文件 / 目录→“TortoiseSVN”→“还原”
  • 确认还原操作,本地修改将被撤销,恢复至上次更新的版本

场景 2:回退到历史版本(更新至版本)

  1. 右键目标文件 / 目录→“TortoiseSVN”→“更新至版本 (U)...”
  2. 选择 “版本 (R)”,输入目标版本号(可通过 “显示日志 (L)” 查询历史版本号)
  3. 点击 “确定”,本地文件将更新为指定版本的内容

(五)检查修改(Check for modifications)

  1. 功能作用:查看本地工作副本与服务器版本的差异,包括未提交的本地修改和未更新的服务器修改

  2. 操作步骤:

    • 右键工作副本目录→“TortoiseSVN”→“检查修改”

    • 查看结果:

      • 本地未提交的修改:显示文件的新增、删除、修改状态
      • 服务器未更新的修改:勾选 “检查版本库” 可查看其他用户提交的变更
  3. 应用场景:提交前确认修改内容,避免误提交;同步前查看服务器是否有更新

(六)更新本地版本(SVN Update)

  1. 功能作用:将服务器最新版本的文件同步到本地,保持本地工作副本与服务器一致

  2. 操作步骤:

    • 右键工作副本目录(或单个文件)→“SVN 更新 (U)...”

    • 可选参数:

      • 最新版本:默认同步服务器最新版本
      • 指定版本:选择 “版本 (R)” 并输入版本号,同步至特定版本
      • 忽略外部:勾选 “省略外部 (X)” 可忽略外部引用的文件
  3. 注意事项:更新前建议先检查本地修改,避免冲突

(七)提交本地修改(SVN Commit)

  1. 功能作用:将本地工作副本的修改(新增、删除、修改、改名等)上传至服务器,形成新的版本

  2. 操作步骤:

    • 右键工作副本目录(或修改的文件)→“SVN 提交 (C)...”
    • 填写提交日志:简要描述本次修改的内容(如 “修复登录功能 bug”“新增用户管理模块”)
    • 勾选待提交的文件:确认变更列表中的文件为本次需提交的内容
    • 点击 “确定”,完成提交

(八)查看操作日志(Show log)

  1. 功能作用:查询项目的历史操作记录,包括修改作者、时间、版本号、修改内容等

  2. 操作步骤:

    • 右键工作副本目录→“TortoiseSVN”→“显示日志 (L)”
    • 筛选条件:可设置日期范围、作者等筛选条件
    • 查看详情:选中某条日志,可查看该版本的文件变更路径和具体修改内容
  3. 应用场景:版本追溯、问题定位、查看他人修改记录

(九)版本库浏览(Repo-browser)

  1. 功能作用:直接浏览服务器版本库的目录结构和文件,无需下载本地副本

  2. 操作步骤:

    • 右键任意本地目录→“TortoiseSVN”→“版本库浏览 (R)...”
    • 输入版本库 URL,点击 “确定”
    • 输入用户名和密码,即可查看服务器上的项目文件列表
  3. 附加功能:查看文件锁定状态、版本信息等

五、版本库 URL 获取方法(VisualSVN Server)

  1. 打开 VisualSVN Server 管理工具
  2. 展开 “Repositories” 目录,找到目标项目文件夹(如 fuxi_SVN)
  3. 右键目标文件夹,选择 “Copy URL to Clipboard”
  4. 粘贴复制的 URL 即可用于本地检出或版本库浏览

六、图标状态含义

图标状态说明
绿色对勾工作副本状态正常,与服务器版本一致
红色感叹号文件已修改,未提交
黄色感叹号文件存在冲突
蓝色加号文件已计划添加到版本控制
红色叉号文件已删除,未提交
加载评论中...