推定無題

日々調べたこととか

Mercurialによるリポジトリのクローン

f:id:sunrisebyeast:20120627163252p:plain

準備

> mkdir source
> hg init source

A

> hg clone source dest
> cd dest

B

dest> hg ci -A -m "0"
dest> hg push
pushing to c:\source
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files

C

dest> cd ..\source
source> hg update
source> hg ci -A -m "1"

source> cd ..\dest
dest> hg pull
dest> hg update

D

dest> cd ..\source
source> hg ci -A -m "2"

source> cd ..\dest
dest> hg ci -A -m"3"
dest> hg push
pushing to c:\source
searching for changes
abort: push creates new remote head XXXXXXXXXXXX!
(you should pull and merge or use push -f to force)

sourceに、dest側で反映されていないチェンジセットがあるのでpushは中止された。
dest側でpullするか、mergeするか、強制的にpushするか。
(強制pushした場合、source側は2と3のマルチヘッド状態になる)


dest> hg pull
pulling from c:\source
searching for changes
adding changesets
adding manifests
adding file changes
adding 1 changesets with 1 changes to 1 file (+1 heads)
(run 'hg heads' to see heads, 'hg merg' to merge)

2と3のマルチヘッド状態。必要に応じてマージする。


dest> hg merge

2と3のマージが行われる。