### SVN基本指令详解 #### 目录架构与用途解析 Subversion(SVN)作为一款广泛应用的版本控制系统,其目录结构通常包含`Trunk`、`Tags`和`Branches`三大核心部分。 - **Trunk**: 被视为开发的主干道,所有的主要开发活动都在这里进行。它是项目的基础版本,所有最新的代码更改都会首先合并到这个目录。 - **Tags**: 用于标记项目在特定时间点的状态,通常是在发布新版本时创建。这些标签不会被修改,它们提供了一个快照,帮助开发者和用户回溯到过去某个确切的时间点。 - **Branches**: 分支是为了解决某些特定需求或功能开发而创建的。例如,为了准备一个将来的版本或修复某个bug,可以创建一个分支,独立于主干进行开发,待完成后再合并回主干。 #### SVN基本功能 **1. Import**: 将整个项目目录导入SVN仓库。 ``` svn import project_directory http://DOMAIN/svn_project ``` 或者使用本地路径: ``` svn import project_directory file:///SVN_PATH/svn_project ``` **2. Checkout (简写:co)**: 从SVN仓库中取出代码到本地工作区。 ``` svn co http://SVN_PATH/svn_project ``` 可以指定版本: ``` svn co -r12 file:///var/lib/svn/dev/projects ``` **3. List (简写:ls)**: 查看仓库中的文件列表。 ``` svn ls http://SVN_PATH/svn_project ``` **4. Update (简写:up)**: 更新本地工作区到最新版本。 ``` SVN_CHECKOUT_DIR$ svn up ``` **5. Commit (简写:ci)**: 将本地修改提交到SVN仓库。 ``` SVN_CHECKOUT_DIR$ svn ci ``` **6. Status (简写:st)**: 显示本地文件状态与仓库的差异。 ``` SVN_CHECKOUT_DIR$ svn st ``` **7. Add**: 将新文件或目录添加至SVN管理。 ``` SVN_CHECKOUT_DIR$ svn add filename SVN_CHECKOUT_DIR$ svn add directory ``` **8. MV (Move/Rename)**: 改变文件名,同时保留该文件的历史记录。 ``` SVN_CHECKOUT_DIR$ svn mv filenamenew_filename ``` **9. Revert**: 撤销未提交的本地修改,恢复到上次提交的状态。 ``` SVN_CHECKOUT_DIR$ svn revert [file|directory] ``` #### SVN文件状态标识 - `?`: 文件未被SVN跟踪。 - `A`: 新增的文件。 - `C`: 文件冲突,需要手动解决。 - `D`: 已删除的文件。 - `M`: 文件已修改。 - `U`: 文件已更新。 #### 进阶操作 **1. 创建分支** ``` svn copy http://svnserver/calc/trunk http://svnserver/calc/branches/my-calc-branch -m 'create a branch' ``` **2. 创建标签** ``` svn copy http://svnserver/calc/trunk http://svnserver/calc/tags/Release-1.0.0 -m 'create Release tags for Release1.0.0' ``` **3. 合并两个版本的文件** ``` svn merge -r REV1:REV2 {path/to/workingcopy} ``` 例如,撤销最近的一次提交: ``` svn merge -r 1234:1233 ``` 或者合并两个版本: ``` svn merge -r 1233:1234 ``` **4. 处理冲突** 当出现冲突(状态显示为`C`),使用`resolved`命令清理自动产生的冲突文件: ``` svn resolved filename ``` **5. 查看差异** ``` svn diff ``` 或者比较两个版本之间的差异: ``` svn diff -r 9237:9238 ``` **6. 信息查询** ``` svn info ``` **7. 日志查询** ``` svn log svn log -l10 svn log -c100 svn log -v -c100 ``` **8. 属性设置** SVN支持在文件或目录上设置属性,例如,设置`Id`关键字: 在文件内插入 `$Id$` 标签,然后通过以下命令设置属性: ``` svn propset svn:keywords "Id" filename ``` 以上是对SVN基本指令及部分进阶操作的详细解析,掌握了这些,你就可以有效地管理和协作代码库了。
先來看 SVN Trunk/Tags/Branches 目錄 的 架構 和 用途:(英文說明轉載自 SubTrain PPT)
trunk: Main line of development(主幹, 主要開發都由在 trunk)
tags: Releases (想要 Release 的時後, 就標個 Tag, 以後可以依 Tag 來找回之前版本的資料)
branches: Preparation of release, bug fixing(分支, 可以將某些功能切出來, 或者 bug fix 等切成分支, 等做完後再用 Merge 合併回來)
SVN 基本功能:
Import: 將整個 project_directory 的資料 import 進 svn 裡面
svn import project_directory http://DOMAIN/svn_project
svn import project_directory file:///SVN_PATH/svn_project
Checkout: (checkout 可簡寫成 co), 將資料 checkout 回來
svn co http://SVN_PATH/svn_project
svn co file:///SVN_PATH/svn_project
svn co -r 12 file:///var/lib/svn/dev/projects # 出第12版的 projcets code
List: (list 可簡寫成 ls), 看上面有哪些檔案/資料
svn ls http://SVN_PATH/svn_project
svn ls file:///SVN_PATH/svn_project
Update: (update 可簡寫成 up), 將目前資訊更新成 SVN 線上最新版本.
SVN_CHECKOUT_DIR$ svn up
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助