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.

面向美术和策划的SVN经验谈

2,253 views

Published on

面向美术和策划的SVN经验谈

Published in: Technology
  • Be the first to comment

面向美术和策划的SVN经验谈

  1. 1. 面向美 术和策划的 SVN 经验谈 赖勇浩 2008.4.23 广州
  2. 2. SVN 能做什么 <ul><ul><li>记录文件的历史版本 </li></ul></ul><ul><ul><li>多人 协同工作 </li></ul></ul><ul><ul><li>版本和分支的管理 </li></ul></ul><ul><ul><li>顺带给老板一些绩效参考 </li></ul></ul>
  3. 3. SVN 注意事 项 <ul><ul><li>良好的 记录日志 </li></ul></ul><ul><ul><li>良好的目 录结构 </li></ul></ul><ul><ul><li>良好的文件命名 </li></ul></ul><ul><ul><li>SVN 不是文件中 转站 </li></ul></ul><ul><ul><li>SVN 不是 备份工具 </li></ul></ul>
  4. 4. SVN 并不太适合美 术和策划 <ul><ul><li>图片文件是二进制的 </li></ul></ul><ul><ul><li>Office 文档是二 进制的 </li></ul></ul><ul><ul><li>Office 文档本身支持一些版本管理的 </li></ul></ul><ul><ul><li>但没有 专门针对二进制文档的版本管理系统,所以先凑合着用 SVN </li></ul></ul>
  5. 6. SVN 版本号 <ul><ul><li>版本号是基于整个 仓库的,创建时版本号为 0 ,每一次成功的提交版本号增 1 </li></ul></ul><ul><ul><li>版本号代表了版本 库的一个快照 </li></ul></ul>
  6. 7. 基本操作 <ul><ul><li>checkout(ci) 是从 仓库获取一个工作拷贝 </li></ul></ul><ul><ul><li>update(up) 是 让工作拷贝同步仓库 </li></ul></ul><ul><ul><li>commit(ci) 是提交工作到版本 库 </li></ul></ul>
  7. 8. 基本操作 <ul><ul><li>add 将目 录或文件加入到工作拷贝 </li></ul></ul><ul><ul><li>add 后要 ci 才会提交到 仓库 </li></ul></ul><ul><ul><li>revert 放弃修改 </li></ul></ul><ul><ul><li>delete 删除目录或文件, ci 后影响 仓库 </li></ul></ul><ul><ul><li>rename 改名,相当于 copy/delete ,会 丢失版本信息 </li></ul></ul>
  8. 9. 基本操作 <ul><ul><li>status(st) 查看当前工作拷贝的文件和目录的状态 </li></ul></ul><ul><ul><ul><li>? item 文件或目 录 item 不在版本控制中 </li></ul></ul></ul><ul><ul><ul><li>M item 文件 item 的内容被修改 </li></ul></ul></ul><ul><ul><ul><li>C item 文件 item 发生冲突 </li></ul></ul></ul><ul><ul><ul><li>A item 文件或目 录预定加入到版本库 </li></ul></ul></ul><ul><ul><li>小 乌龟里的 check for modifications 与命令 status 相同 </li></ul></ul>
  9. 10. 基本操作 <ul><ul><li>switch(sw) 工作拷 贝的切换,常用于主干和分枝间的切换;另有时用于仓库地址变更时对工作拷贝进行重定位( svn sw – relocate http://219.137.194.208/svn http://59.41.221.243/svn ) </li></ul></ul>
  10. 11. 基本操作 <ul><ul><li>export 导出工作拷贝中的所有目录和文件 </li></ul></ul>
  11. 12. 常 见问题 <ul><ul><li>问:怎么更新(回滚)到指定版本? </li></ul></ul><ul><ul><li>答:在命令行 执行 svn up – r xxx 或用小 乌龟的 update to revision </li></ul></ul>
  12. 13. 常 见问题 <ul><ul><li>问:什么是冲突? </li></ul></ul><ul><ul><li>答:当两个或更多的人修改了同一个文件,并有人提交之后,其它人同步版本 时会发生冲突 </li></ul></ul><ul><ul><li>问:怎么处理冲突? </li></ul></ul><ul><ul><li>答:因 为美术和策划的文档大多是二进制格式的,所以无法 diff/merge ,只能手 动地检查修改,再执行 resolved </li></ul></ul>
  13. 14. 常 见问题 <ul><ul><li>问:什么是锁,怎么用? </li></ul></ul><ul><ul><li>答: 锁是用来保证独占式修改的工具,先 get lock ,再 write ,然后 unlock </li></ul></ul>
  14. 16. 常 见问题 <ul><ul><li>问:都该提交些什么呀? </li></ul></ul><ul><ul><li>答: 仓库的资源有限,提交的必须是团队认为有必要保持记录的文件(即有很大可能需要 undo 的文件)或必 须要记录的文件(如特定的发布版) </li></ul></ul>
  15. 17. 常 见问题 <ul><ul><li>问:什么时候提交? </li></ul></ul><ul><ul><li>答:很 难说,但一定要遵从团队的约定;另外可以参考这几点: </li></ul></ul><ul><ul><ul><li>已 经完成一件事 </li></ul></ul></ul><ul><ul><ul><li>已 经完成一件任务的一个阶段 </li></ul></ul></ul><ul><ul><ul><li>保 证不是草稿 </li></ul></ul></ul><ul><ul><ul><li>团队里的其他人用得着 </li></ul></ul></ul>
  16. 18. 其它 <ul><ul><li>归并( merge) </li></ul></ul><ul><ul><li>diff </li></ul></ul><ul><ul><li>分枝( branches) </li></ul></ul><ul><ul><li>标签( Tags ) </li></ul></ul>
  17. 19. <ul><ul><li>一定要写清晰明了的 log </li></ul></ul><ul><ul><li>一定要建立良好的目 录结构 </li></ul></ul><ul><ul><li>一定要有准确的命名 </li></ul></ul>
  18. 20. <ul><ul><li>养成多用 SVN 的 习惯 </li></ul></ul><ul><ul><li>其 实这东西没想像的复杂 </li></ul></ul><ul><ul><li>为自己的作品负责 </li></ul></ul>

×