Mercurial 簡介

Preview:

DESCRIPTION

 

Citation preview

Mercurial

A Distributed Source Management

System

資工人:

寫程式,

改程式...

改錯了?!

本來會動,現在不會動。

備份!

COPY…

改之前 copy 一份起來

COPY…

改錯了 copy 回來

COPY?!

錯的蓋掉對的!

更慘的..

專案

大家一起寫

共用程式碼

一起寫?

Pair Programming

不可能

COPY

ZIP / RAR

網芳 / E-mail

網芳 / E-mail

UnZIP / UnRAR

COPY

噩夢

你改,

他也改…

改了哪裡?

沒人知道…:P

還是噩夢

救星:

版本控制

誤刪?

歷史紀錄

程式碼整合?

自動合併

標示衝突

</噩夢>

有名的:

CVS

有人用過嗎?

Subversion

(SVN)應該有用過吧?

美好世界?

Client-Server

Centralized

Client:

專用Client

(GUI)

WinCVS

開發環境整合

Eclipse, NetBeans, Vim, …

作業系統整合

TotoriseSVN

Server:

http://

svn://

svn+ssh://眼花撩亂…

權限控管

麻煩

又是噩夢

沒網路…

一人專案

Server?

多此一舉…

Local

Repository獨立的目錄

仍然是噩夢

救星:

似曾相識…

分散式版本控制

後 subversion 時代

自掃門前雪

熱門的

• SVK– Based on Subversion

• Mercurial (Hg)– Python

– Mozilla, NetBeans, OpenJDK

• Git– C

– Linux kernel, Ruby / Rails

• Bazzar (bzr)– Python

Mercurial

回歸主題

汞 Hg

執行檔就叫 “hg”

第一步

• 建立新專案

– cd project/

– hg init

– [hg add]

• 目錄

– 工作目錄: project/

– 檔案庫位置: project/.hg

基本指令

檔案管理

• 加入新的檔案– hg add [FILE …]

• 移除檔案– hg remove [FILE …]

• 改名– hg rename OLD NEW

檢視修改狀況

• 顯示更動狀態– hg status [FILE …]

• 查看檔案內容變更– hg diff [-r REV] [FILE …]

• 檢視更新紀錄– hg log

– hg glog (樹狀圖)

送交修改

• 送交修改

– hg commit [FILE …]

• 放棄修改 (工作目錄)

– hg revert [FILE …]

• 還原最近一次修改 (檔案庫)

– hg rollback

分支 (Branch)

• 建立新的分支– hg branch BRANCH_NAME

• 在分支中切換– hg update -r BRANCH_NAME

– 預設分支: “default”

• 列出所有分支– hg branches

標記、標籤 (Tag)

• 建立新的標記

– hg tag TAG_NAME

• 在分支中切換

– hg update -r TAG_NAME

• 列出分支

– hg tags

版本概念

多人合作

• 公開檔案庫 (HTTP)

– hg serve

• 抓取已經存在的檔案庫內容– hg clone EXIST_REP project/

• EXIST_REP 格式:

– http[s]://server/project

– svn://server/path/to/project

– [file://]path/to/project

多人合作

• 送出你的 (檔案庫) 修改– hg push REMOTE

• 抓取後續的 (檔案庫) 變更– hg pull REMOTE

• 更新工作目錄 (與檔案庫同步)– hg update [-r REV]

• 合併更動 (到工作目錄)– hg merge [-r REV]

分散式架構

檔案庫合併 (前)

檔案庫合併 (中)

檔案庫合併 (後)

工具

• Mercurial Windows Installer

– http://mercurial.berkwood.com/

• Mercurial Eclipse

– http://www.vectrace.com/mercurialeclipse/

• TotoriseHg

– http://www.selenic.com/mercurial/wiki/index.c

gi/Mercurial

TotoriseHg (1)

TotoriseHg (2)

更多資料

• 官方網站

– http://www.selenic.com/mercurial/

• Cheat Sheet (小抄)

– http://www.ivy.fr/mercurial/ref/v1.0/

The End

Any Question?