# T1 Tour Management System - 版本控制使用示例
# Version Control Usage Examples

## 完整发布流程示例 (Complete Release Process Example)

### 场景：添加新的预订功能 (Scenario: Add New Booking Feature)

#### 步骤 1: 开发完成，创建开发版本
```powershell
# 当前版本: 1.0.0
.\scripts\version.ps1 patch --dev "Add new booking feature"

# 结果: 1.0.0 → 1.0.1-dev.1
# 用途: 部署到开发环境，供团队审查和测试
```

#### 步骤 2: 团队审查通过，创建Beta版本
```powershell
# 当前版本: 1.0.1-dev.1
.\scripts\version.ps1 patch --beta "Team review passed, ready for beta testing"

# 结果: 1.0.1-dev.1 → 1.0.1-beta.1
# 用途: 部署到测试环境，进行早期用户测试
```

#### 步骤 3: Beta测试通过，创建RC版本
```powershell
# 当前版本: 1.0.1-beta.1
.\scripts\version.ps1 patch --rc "Beta testing completed, ready for final testing"

# 结果: 1.0.1-beta.1 → 1.0.1-rc.1
# 用途: 部署到预生产环境，进行最终验收测试
```

#### 步骤 4: RC测试通过，创建生产版本
```powershell
# 当前版本: 1.0.1-rc.1
.\scripts\version.ps1 patch "Production release - new booking feature"

# 结果: 1.0.1-rc.1 → 1.0.1
# 用途: 部署到生产环境，正式发布给用户
```

## 不同场景的使用示例 (Usage Examples for Different Scenarios)

### 场景 1: 紧急Bug修复 (Emergency Bug Fix)

```powershell
# 发现生产环境严重Bug
.\scripts\version.ps1 patch --dev "Fix critical booking bug"

# 快速测试
.\scripts\version.ps1 patch --rc "Emergency fix ready for testing"

# 紧急发布
.\scripts\version.ps1 patch "Emergency fix - critical booking bug"
```

### 场景 2: 新功能开发 (New Feature Development)

```powershell
# 开发新功能
.\scripts\version.ps1 minor --dev "Add payment integration"

# 团队测试
.\scripts\version.ps1 minor --beta "Payment feature ready for testing"

# 用户测试
.\scripts\version.ps1 minor --rc "Payment feature final testing"

# 正式发布
.\scripts\version.ps1 minor "Release payment integration feature"
```

### 场景 3: 重大版本更新 (Major Version Update)

```powershell
# 重大架构变更
.\scripts\version.ps1 major --dev "Major UI redesign"

# 内部测试
.\scripts\version.ps1 major --beta "UI redesign beta testing"

# 最终测试
.\scripts\version.ps1 major --rc "UI redesign final testing"

# 重大发布
.\scripts\version.ps1 major "Release new UI design"
```

## 版本号示例 (Version Number Examples)

### 开发版本序列 (Development Version Sequence)
```
1.0.0 → 1.0.1-dev.1 → 1.0.1-dev.2 → 1.0.1-dev.3
```

### Beta版本序列 (Beta Version Sequence)
```
1.0.1-dev.3 → 1.0.1-beta.1 → 1.0.1-beta.2
```

### RC版本序列 (Release Candidate Sequence)
```
1.0.1-beta.2 → 1.0.1-rc.1 → 1.0.1-rc.2
```

### 生产版本序列 (Production Version Sequence)
```
1.0.1-rc.2 → 1.0.1 → 1.0.2-dev.1
```

## 常见命令速查 (Quick Reference)

### 查看当前版本
```powershell
.\scripts\version.ps1
```

### 创建开发版本
```powershell
.\scripts\version.ps1 patch --dev "Your commit message"
```

### 创建Beta版本
```powershell
.\scripts\version.ps1 patch --beta "Your commit message"
```

### 创建RC版本
```powershell
.\scripts\version.ps1 patch --rc "Your commit message"
```

### 创建生产版本
```powershell
.\scripts\version.ps1 patch "Your commit message"
```

### 版本升级类型
- `patch`: Bug修复 (1.0.0 → 1.0.1)
- `minor`: 新功能 (1.0.0 → 1.1.0)
- `major`: 重大变更 (1.0.0 → 2.0.0)

## 最佳实践建议 (Best Practices)

### 1. 版本命名规范
- 使用描述性的提交信息
- 包含功能描述和影响范围
- 记录重要的变更点

### 2. 发布频率
- **Dev版本**: 每天或每次功能完成
- **Beta版本**: 每周或功能稳定后
- **RC版本**: 准备发布前
- **生产版本**: 经过充分测试后

### 3. 测试策略
- **Dev环境**: 团队内部测试
- **Beta环境**: 早期用户测试
- **RC环境**: 最终验收测试
- **生产环境**: 正式用户使用

### 4. 回滚策略
- 如果发现问题，创建新的修复版本
- 使用git tag管理版本历史
- 保持版本发布记录完整

## 团队协作流程 (Team Collaboration Process)

### 开发阶段
1. 开发者完成功能开发
2. 创建dev版本进行团队审查
3. 团队测试和代码审查
4. 修复发现的问题

### 测试阶段
1. 创建beta版本进行用户测试
2. 收集用户反馈
3. 修复用户报告的问题
4. 创建新的beta版本

### 发布阶段
1. 创建RC版本进行最终测试
2. 进行全面的功能测试
3. 修复发现的问题
4. 创建生产版本

### 监控阶段
1. 部署到生产环境
2. 监控系统运行状态
3. 收集用户反馈
4. 准备下一个版本 