### SVN使用规范详解
#### 一、概述
版本控制系统在软件开发过程中扮演着至关重要的角色。Subversion(SVN)作为一款开源版本控制系统,被广泛应用于团队协作开发中。本文档旨在详细介绍我司SVN使用规范,特别是针对新入职员工进行培训时的重要知识点。
#### 二、SVN目录结构
SVN目录结构是SVN仓库组织的基本框架,合理的目录结构有助于提高开发效率和维护代码库的整洁性。
- **`src`**:主目录,用于存放开发用的源代码。
- **`src\PHP`**:存放PHP工程项目代码。
- **`src\PHP\snake_1.0`**:存放原`snake.meiyuland.com`工程代码。
- **`src\PHP\snake_2.0`**:存放现行`snakeplus.com`工程代码。
- **`src\PHP\snake_2.0\MainBranch`**:分支目录,用于PHP代码的开发。
- **`src\PHP\snake_2.0\Trunk`**:存放开发阶段版本代码。
- **`src\PHP\snake_2.0\Release`**:存放已测试完成并准备发布的版本代码。
- **`src\JAVA`**:存放JAVA工程项目代码,其结构规则与PHP相同。
- **`src\SQL`**:存放数据库SQL文件。
- **`src\SQL\snake_1.0_2.0`**:存放与1.0版和2.0版共享的数据库表结构及SQL语句。
#### 三、SVN操作规范
为了保证团队协作的高效性和代码质量,以下是一些基本的操作规范:
- **先更新,再提交**:开发人员在进行代码修改前应先执行更新操作,确保本地代码与服务器保持一致。
- **提交粒度**:建议以完成的小功能为单位进行提交,如完成UI设计、实现某个具体功能或是修复特定bug等。
- **确保代码完整性**:提交前需确保代码能够通过编译,并且进行了必要的测试,避免提交无法正常运行的代码。
- **处理冲突**:当多人同时修改同一文件时,提交或更新可能会遇到冲突。此时应与相关人员沟通解决冲突,并确保修改后代码的功能不受影响。
- **明确提交说明**:每次提交都应附带清晰的提交说明,便于团队成员理解此次提交的内容和目的。
- **不提交无关文件**:避免提交本地自动生成的文件,如`.classpath`、`Thumbs.db`、`.obj`、`.class`等。
- **谨慎使用锁定功能**:锁定主要用于文档,避免对代码使用锁定功能。
#### 四、SQL文件管理
- **新建表**:每个新建表应单独存储在一个文件中,并采用统一的命名格式:`YYYYMMDD_模块前缀_业务名.sql`。
- **表结构变更**:无论创建新表还是修改现有表结构,都需要在SQL文件的第一行添加注释,格式为`--YYYYMMDD add by 作者 表名 描述`。
- **版本控制**:所有与1.0版和2.0版相关的SQL文件都存放在`src\SQL\snake_1.0_2.0`目录下,便于统一管理和维护。
#### 五、版本发布流程
- **开发阶段**:开发人员在`src\PHP\snake_2.0\Trunk`目录下进行开发,每个迭代完成后将代码移动到`src\PHP\snake_2.0\Release`目录。
- **测试阶段**:测试人员从`src\PHP\snake_2.0\Release`目录获取最新代码进行测试。
- **正式发布**:测试通过后,由管理员将最终版本代码归档至`src\PHP\snake_2.0\Release`目录,并按`大版本号.中级功能上线迭代版本号.每次小功能上线或bug修复版本号`的规则进行版本编号。
通过遵循以上规范,不仅能够提升开发效率,还能有效减少代码冲突和错误,保障项目的顺利进行。希望每位开发人员都能够严格遵守这些规范,共同维护好我们的代码仓库。