Cornerstone 4 for Mac 是一款专为 macOS 设计的图形化 Subversion (SVN) 版本控制客户端。它通过直观的界面和强大的功能,帮助开发者高效地管理代码仓库、跟踪变更历史、协同工作以及维护项目版本。本指南将详细介绍其核心界面、完整工作流程及进阶技巧。
一、核心界面与工作区详解
Cornerstone 4 的主界面设计清晰,主要分为以下几个关键区域:
- 导航侧边栏(左侧):顶部为仓库浏览器,以树状结构显示已配置的SVN仓库、工作副本和标签。底部为“待提交更改”列表,实时显示当前工作副本中所有已修改、新增或删除的文件状态。
- 主内容区(中部):根据在侧边栏选择的不同项目,动态显示以下视图之一:
- 文件浏览器:显示仓库或工作副本的目录和文件列表。
- 比较视图:并排显示文件不同版本间的差异,高亮显示变更行。
- 日志视图:按时间倒序列出所选文件或目录的所有提交历史,包括版本号、作者、日期和提交信息。
- 修订版详情视图:展示特定提交版本中所有被更改的文件列表。
- 检查器面板(右侧):显示当前选中项目的详细信息,如文件状态、属性、版本号、锁定状态等。在提交时,此处会变为提交信息输入框和文件选择列表。
- 工具栏(顶部):提供常用操作的快捷按钮,如更新、提交、比较、刷新、显示忽略文件等。
二、完整操作流程:从项目到导出
以下是从零开始使用 Cornerstone 4 管理一个项目的标准流程。
1. 创建/打开项目(连接仓库与检出工作副本)
步骤1:添加仓库
- 方法:点击菜单栏
文件 (File)->添加仓库 (Add Repository)...,或在仓库浏览器底部点击“+”按钮。 - 位置:弹出的对话框中,输入仓库地址(如
svn://server/path或https://server/svn/repo)、认证信息(用户名/密码)。 - 快捷键:
Command + Shift + N
步骤2:检出工作副本
- 方法:在仓库浏览器中,右键点击需要检出的仓库路径(通常是 trunk 或特定分支),选择
检出 (Check Out)...。 - 位置:在随后弹出的窗口中,选择本地存放工作副本的目录。
- 快捷键:在选中仓库项后,使用
Command + Option + O。
完成后,该工作副本会出现在侧边栏的“工作副本”分组下。
2. 日常修改与提交
步骤1:进行修改
在本地工作副本目录中,使用任何外部编辑器修改文件。Cornerstone 的“待提交更改”列表会自动检测到文件状态变化(如“已修改”、“未版本化”)。
步骤2:检查差异
- 方法:在“待提交更改”列表或文件浏览器中,右键点击已修改的文件,选择
与工作副本比较 (Compare with Working Copy)。 - 位置:主内容区将变为比较视图,清晰展示具体更改。
- 快捷键:选中文件后,按
Command + Option + C。
步骤3:提交更改
- 方法:确保所有要提交的文件已在“待提交更改”列表中勾选。在右侧检查器面板的文本框中,清晰输入提交信息。然后点击右下角的
提交 (Commit)按钮。 - 位置:提交操作从工具栏或右键菜单也可启动。
- 快捷键:
Command + Option + M
注意:提交前务必更新(Command + U)以合并他人更改,避免冲突。
3. 处理更新与冲突
步骤1:更新工作副本
- 方法:在侧边栏选中工作副本或特定目录,点击工具栏的“更新”按钮。
- 快捷键:
Command + U
步骤2:解决冲突(如果发生)
如果更新导致冲突,文件状态会变为“冲突”。
- 方法:右键点击冲突文件,选择
解决冲突 (Resolve Conflict)...。Cornerstone 会打开三窗格合并工具(我的版本、基础版本、他人版本),允许你逐行选择保留哪些更改,或直接使用某个完整版本。 - 解决后:标记冲突已解决(
Command + Option + R),文件状态变为“已修改”,然后提交。
4. 查看历史与导出项目
步骤1:查看日志历史
- 方法:右键点击任何文件或目录,选择
显示日志 (Show Log)。 - 位置:主内容区将显示完整的提交历史列表。点击任一版本,可在下方查看该版本的变更文件列表。
- 快捷键:
Command + L
步骤2:导出项目或特定版本
- 方法:在仓库浏览器或日志视图中,选中某个目录或特定修订版,右键点击选择
导出 (Export)...。 - 位置:此操作将纯净的代码(不含.svn元数据)导出到你指定的本地文件夹,常用于发布或备份。
- 注意:导出操作没有默认快捷键,可通过菜单栏
文件 (File) -> 导出 (Export)...完成。
三、常用功能进阶技巧
- 智能忽略文件:在“待提交更改”列表中,右键点击未版本化的文件(如
.DS_Store,*.log),选择忽略 (Ignore)->“*.log”或“文件名”。Cornerstone 会自动将规则添加到父目录的svn:ignore属性中,避免同类文件再次出现。 - 变更集提交:在提交面板中,可以拖动文件进行分组,并为不同组输入不同的提交信息,从而实现将一次物理修改拆分成多个逻辑变更集进行提交,保持提交历史的清晰性。
- 分支图可视化:对于遵循标准分支/标签结构的仓库,在日志视图右上角点击“显示分支图”按钮,可以图形化查看分支的创建与合并历史,直观理解项目脉络。
- 快速文件追溯:在比较视图或文本编辑器中,按住
Command键并点击行号旁的修订号标记,可以直接跳转到该行代码被最后修改的那次提交日志,方便追溯问题来源。 - 集成 Finder 与 外部编辑器:在偏好设置(
Command + ,)的“通用”选项中,可以设置默认的外部编辑器(如 VS Code, BBEdit)。在Cornerstone中双击文件,即可在指定编辑器中打开。
四、常见问题与解决方案
- 问题1:提交失败,提示“工作副本已锁定”或“目录已锁定”。
- 解决方案:在侧边栏选中锁定的工作副本目录,点击菜单栏
工作副本 (Working Copy) -> 清理 (Cleanup)。此操作会尝试修复中断操作导致的锁问题。
- 解决方案:在侧边栏选中锁定的工作副本目录,点击菜单栏
- 问题2:“待提交更改”列表中出现大量无关的系统文件或编译产物。
- 解决方案:使用“忽略”功能(见进阶技巧)。更彻底的方法是,在仓库的相应目录上右键,选择
获取信息 (Get Info),在“属性”标签页中直接编辑svn:ignore属性,添加全局忽略模式。
- 解决方案:使用“忽略”功能(见进阶技巧)。更彻底的方法是,在仓库的相应目录上右键,选择
- 问题3:更新后文件状态显示为“树冲突”。
- 解决方案:树冲突通常由文件/目录的删除、重命名与修改动作重叠引起。右键点击冲突项,选择
解决冲突,根据实际情况选择“将他们的更改标记为已解决”(接受他人操作)或“将我的更改标记为已解决”(保留我的操作)。必要时需结合日志视图理解冲突上下文。
- 解决方案:树冲突通常由文件/目录的删除、重命名与修改动作重叠引起。右键点击冲突项,选择
- 问题4:无法连接到仓库,SSL证书验证失败。
- 解决方案:如果确认仓库安全,可以临时绕过验证。在添加仓库时弹出的认证窗口中,点击“高级”选项,取消勾选“验证服务器SSL证书”。更安全的方式是将仓库的证书永久接受(首次连接时通常会提示)。
五、Cornerstone 4 for Mac 快捷键汇总表
| 功能 | 快捷键 (Mac) | 说明 |
|---|---|---|
| 添加仓库 | Cmd + Shift + N | 打开添加新仓库对话框 |
| 打开/检出 | Cmd + Option + O | 检出选中的仓库路径 |
| 更新工作副本 | Cmd + U | 从仓库同步最新更改 |
| 提交更改 | Cmd + Option + M | 提交当前选中工作副本的更改 |
| 显示日志 | Cmd + L | 查看选中项目的提交历史 |
| 比较差异 | Cmd + Option + C | 与基础版本或工作副本比较 |
| 刷新 | Cmd + R | 刷新当前视图内容 |
| 标记冲突已解决 | Cmd + Option + R | 解决冲突后标记文件状态 |
| 显示忽略的文件 | Cmd + Shift + I | 在文件列表中显示被忽略的文件 |
| 打开偏好设置 | Cmd + , | 打开应用程序偏好设置 |
| 查找 | Cmd + F | 在当前视图中查找内容 |







