• Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Mercurial Quick Tutorial

on

  • 3,483 views

Mercurial Quick Tutorial

Mercurial Quick Tutorial

Statistics

Views

Total Views
3,483
Views on SlideShare
2,460
Embed Views
1,023

Actions

Likes
3
Downloads
0
Comments
0

6 Embeds 1,023

http://blog.splayer.org 912
http://blog.foolbear.com 94
http://translate.googleusercontent.com 5
http://xianguo.com 5
http://cache.baidu.com 5
http://static.slidesharecdn.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mercurial Quick Tutorial Mercurial Quick Tutorial Presentation Transcript

  • Mercurial(Hg)Quick Tutorial
    沈晟 · 射手科技
  • Basic
  • 分布式的版本管理系统
    SVN replacement
    More like Git
    Faster
    Less traffic, storage requirement
    Easier for rapid development, branching, etc.
    Mozilla is using it. Google Code is using it. Python is switching.
    What is Mercurial
  • 什么是分布式
    每个本地的文件树独立的版本管理系统
    每个Repo副本都是平等的
    Do not depend on server anymore
    Commit, Update, Revert
    New concepts to add
    Clone, Pull, Push
    Concept
  • Clone (克隆)
    所有的文件树副本都是平等的版本管理系统
    所以没有Checkout (领取),而只有Clone (克隆)
    Pull (拉)
    从另一个Repo获得最新的修改
    因为我们是平等的,所以叫 Pull (拉)
    Push (推)
    将我的修改推送到另一个Repo
    因为我们是平等的,所以叫 Push (推)
    Clone, Pull, PushMust understand
  • 所有对文件的修改
    都不是立刻发送到其他的Repo服务器
    都只是对本地的Mercurial版本管理系统进行操作
    不需要其他Repo服务器授权
    可以在本地连续进行多次Commit
    因为每个本地的Repo本身就可以进行版本管理
    因为是分布式管理,不再有Revision Number
    每次修改称为 Changeset
    Commit, UpdateOld Keywords
  • Rollback
    可以撤销最近一次的Commit操作
    Bundle
    因为有多个Changeset,单个Patch常常不能满足需要
    Bundle包含一组Changesets, 可以看作高阶的Patch
    Rollback, BundleNew Keywords
  • Practice
    Tortoisehg
  • Clone : 获取一个Repo
    hg clone https://hg.splayer.org/splayer
    任意空目录中右键菜单
    填入 Repo 的地址
    按下 Clone 按钮
    Clone
  • Repo 目录中右键菜单 : Synchronize (同步)
    在 Post Pull 中选择 Update,否则并不会将当前文件树直接更新到最新版,而只是获得最新的修改记录
    Pull
  • 右键菜单 Hg Commit
    Commit
  • 进入 Repository Explorer
    选中目标changeset作为终点
    在另一个起点changeset上点右键
    选择 Bundle from here
    Bundle包含一组修改
    Bundle包含修改说明
    生成 Bundle
  • Commits 之后可以 Push
    Repo 目录中右键菜单 : Synchronize (同步)
    Push
  • Repository Explorer 左键选择当前 changeset
    之后右键点击目标 changeset
    选择 Merge with
    Merge
  • 可以设置远端 Repo 的用户名 密码
    修改远端 Repo 地址和默认的 Post Pull 操作
    Change Repo Setting
  • 在 Repository Setting 中修改 remote repository path
    URL detail
    避免重复提示输入密码
    Set default password
  • Misc.
  • Pull, Push, Update 均可在Repository Explorer中完成
    Commit Log尽量写在一行内。因为第二行会被隐藏。
    第一次Clone总会很慢。因为同时克隆所有历史修改。
    Tips
  • Pull != Update
    Pull 操作仅获得最新的ChangeSets并不会 Update 到最新版本,除非给出命令
    Commit 记录并不总是容易被清理
    Revert 回到之前的版本也会留下 Log
    Rollback 只能回滚一次
    所有 Log 在 Push 时都会保留
    所以虽然 Commit 不再依赖服务端,但仍需慎重
    Common Mistakes
  • Let professionals take care the maintenance
    Manage both public and private repo in the same user management system
    Customize domain so we can reverse proxy it to increase speed
    Therefore, it’s more suite for startup business
    Why BitBucket
  • http://en.wikipedia.org/wiki/Mercurial
    http://tortoisehg.bitbucket.org/download/index.html
    References