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.

Lx4 coffee mercurial-usage

1,322 views

Published on

2008刘鑫作的内部 Hg 分享了在

Published in: Technology, Business
  • Be the first to comment

Lx4 coffee mercurial-usage

  1. 1. 水银( Mercurial )的使用 刘鑫 定制个人开发环境系列
  2. 2. 版本管理系统与我 ● 版本管理系统会带来什么? ● 如何运用版本管理系统使我们获利? ● 如何学习版本管理系统?
  3. 3. 从分布式版本管理系统开始 ● 从自我做起,熟悉版本管理系统 ● 学会管理自己的工作 – 管理变更 – 查看历史与回溯 – 工作分支 ● 学习团队合作 – 代码提交与更新 – 局部代码交换 – 离线工作与集中管理
  4. 4. 我是谁 ● 告诉 Mercurial 你是谁: – 直接使用用户名 @ 域 – 定义 HGUSER 变量 – 定义 EMAIL 变量 – 编辑 .hgrc 文件: [ui] username = March Liu <march.liu@gmail.com>
  5. 5. 建立仓库 ● 每个人心中都有一个哈姆雷特 – 每个工作目录都是一个仓库 – 每个仓库都有自己的历史 ● 为每个项目建立自己的仓库 – > hg init ● 从别人或服务器获得代码 – > hg clone ${sourcepath}
  6. 6. 日常工作--查看仓库 ● 查看文件状态 – > hg status ● 查看变更路径 – > hg parents ● 查看历史记录 – > hg log ● 查看当前工作状态 – > hg tip ● 查看标记/分支 – > hg tags –
  7. 7. 设定提交 ● 文件修改会被自动发现 ● 添加新文件 – > hg add ● 删除 – > hg rm ● 复制 – > hg copy ● 目前的改名只是 copy&remove – > hg rename ● 添加/删除
  8. 8. 提交变更 ● 提交变更 – > hg commit [-m “...”][-u “...”] ● 我不想…… – > hg rollback – Rollback 撤消的是设定为待提交的内容 ● 一切都是幻觉…… – > hg revert [-r x] – Revert 操作使工作区回复到指定状态 ● 指定更新 – > hg update [-r x]
  9. 9. 分支( branch ) ● 创建分支 – > hg branch xxx ● 查看当前分支 – > hg branch ● 查看所有分支 – > hg branches
  10. 10. 标记 tag ● 创建分支 – > hg tag xxx ● 查看当前分支 – > hg tag ● 查看所有分支 – > hg tags
  11. 11. 变更历史 ● 每次提交产生一个变更集 – Changeset – 16 进制标识 ● 每次提交拥有一个版本号 – 修订号 – 整数 ● 变更历史可能产生多线 – 多人工作合并 – 分支切换
  12. 12. U 盘交流 ● 创建新的复本到同事的 U 盘 – > hg clone <from your repo> ● 把变更推过去 – > hg push <to where> ● 获取别人的改动 – > hg pull <from where> ● 或许你需要 hg update [-C] ● 或许你需要 hg merge
  13. 13. 电子邮件 ● 打包自己的变更集 – > hg bundle [-a] [--base] xxx ● 合并收到的仓库包 – > hg unbundle xxx ● --base 可以指定历史节点 ● 或许你需要 – > hg merge – > hg update [-C] ● 注意 hg 给你的提示
  14. 14. 架设 hg 服务器 ● 可以用 hg serve 架设一个简单的 pull 服务器 ● SSH ● 内置 hgweb.cgi ● 远程 pull : incoming ● 远程 push : outgoing
  15. 15. 常用的知识 ● -I 用来包含匹配的文件 ● -X 用来排除匹配的文件 ● -f 强制执行 ● --logfile(-l) 从指定文件中读出 mess age ● -u 指定用户 ● --date(-d) 记录时间 ● Mercurial 是基于文件的
  16. 16. 模式匹配 ● “ syntax:patternbody” – 支持 glob 语法 – Python 内置正则库 re – 默认为通配符
  17. 17. 水下冰山 ● 集成 kdiff3 ● 丰富的 hook ● 成功的大型项目实践 – OpenJDK – Mozilla – ... ● Mercurial Queues – 管理补丁发布 ● 大量的成功体验有待挖掘……
  18. 18. 方便的教材 ● 包括汉化版的一站式指导图 – Mercurial-QuickStart-v1.0-300dpi – Mercurial-Usage-v1.0-300dpi ● 全面的 free book – Distributed revision control with Me rcurial by Bryan O’Sullivan

×