Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Changeset

Version Control with Subversion. Internal training for newbies

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

Changeset

  1. 1. Version control with Subversion<br />版本管理基础<br />ATA研发中心<br />
  2. 2. 目录<br />基础<br />Copy-Modify-Merge方案<br />基本工作流程<br />基本目录<br />分支与合并<br />Changeset概念<br />分支处理流程<br />Changeset & Merging<br />合并处理流程<br />Tags基线<br />
  3. 3. Copy-Modify-Merge方案<br />对比于Lock-Modify-Unlock,Copy-Modify-Merge方案更高效<br />所有的现代开发模式都使用Copy-Modify-Merge方案<br />Merge的代价并不如想象那么高<br />
  4. 4. 基本工作流程<br />Checkout – Modify-Commit<br />一次Commit尽量修改一个功能,或修复一个缺陷<br />可以通过选择文件的方式把一批修改分开多次Commit<br />通过”Refs #112”或”Fixes #112”关联本次Commit到一个功能或一个缺陷<br />
  5. 5. 基本目录<br />Trunk – 主干目录,保存最新主干代码<br />Branches – 分支目录,临时存放分支代码<br />Tags – 基线目录,永久存放发布的代码,永远不要在Tags里面提交修改<br />使用”svn copy”复制代码,不要人工拷贝/添加<br />“svn copy”不会产生额外的存储空间<br />
  6. 6. Trunk vs. Branches<br />Trunk和Branches都可能成为开发目录<br />主干默认保存最新的代码<br />分支有多种使用方法<br />功能分支 – 在分支上开发特定功能,完成后合并到Trunk<br />发布分支 – 对即将发布的版本创建分支,力求稳定。Trunk上可以继续开发新的功能<br />分支是临时的,用完后可以删除<br />
  7. 7. Changeset vs. Revision<br />一次Commit提交一个Changeset,产生一个Revision<br />Changeset是代码管理的最小单位<br />Changeset是代码合并的基础<br />Revision可以用来引用Changeset<br />Revision是一个数字<br />
  8. 8. Changeset包含什么<br />文件增加<br />文件删除<br />代码修改<br />文件移动<br />文件复制<br />对文件和目录的操作应尽量使用SVN功能,而不是直接操作,例如:删除、复制、移动、重命名等<br />
  9. 9. 分支处理流程<br />“svn copy”从trunk或tags目录把代码复制到branches<br />“svn checkout” 从branches获取复制的代码<br />修改代码<br />“svn commit”提交修改到分支<br />如果需要,执行合并<br />
  10. 10. Changeset& Merging<br />Cherry Picking – Merge的最基本使用方法<br />正确的Merge要求Changeset是有意义的,每次Commit应该是原子的<br />对于需要Merge的分支或其他目录,应该保持跟踪,持续的Merge代码,而不要等到修改多到无法控制<br />
  11. 11. 合并处理流程<br />“svn merge” 并入其他分支的修改<br />处理冲突<br />编译验证,测试验证<br />“svn commit”提交结果<br />重复上面步骤<br />
  12. 12. Tags基线<br />每个正式发布版本必须tag<br />充分利用Tags<br />Tags并不消耗存储<br />不要修改Tags,如果需要修改,”svn copy”到Branches,然后再修改Branches下面的代码<br />
  13. 13. END<br />QA time<br />

    Be the first to comment

    Login to see the comments

  • lotreal

    Jul. 18, 2011

Version Control with Subversion. Internal training for newbies

Views

Total views

825

On Slideshare

0

From embeds

0

Number of embeds

1

Actions

Downloads

9

Shares

0

Comments

0

Likes

1

×