Mercurial の copy コマンド
Mercurial の copy の動作、複製ファイルへの自動的な変更反映について確認します。
orig リポジトリを作成し、file を追加します。
$ hg init orig $ cd orig $ echo "This is a file" > file $ hg add $ hg ci -m "add a file"
$ cat file This is a file
orig リポジトリをクローンして fork リポジトリを作成します。
$ cd .. $ hg clone orig fork
fork リポジトリで file をコピーして copy-file を追加します。
$ cd fork $ hg copy file copy-file $ hg ci -m "add a copy file"
$ cat copy-file This is a file
orig リポジトリの file に新しい行を追加します。
$ cd ../orig $ echo "This is a new line" >> file $ hg ci -m "add a new line"
$ cat file This is a file This is a new line
fork リポジトリから orig リポジトリを pull します。
$ cd ../fork $ hg pull ../orig ../orig から取り込み中 変更点を探索中 チェンジセットを追加中 マニフェストを追加中 ファイルの変更を追加中 1 のチェンジセット(1 の変更を 1 ファイルに適用)を追加(+1個のヘッド) (ヘッド一覧表示は 'hg heads'、マージ実施は 'hg merge')
マージします。
$ hg merge copy-file と file を copy-file にマージ中 ファイル状態: 更新数 1、マージ数 1、削除数 0、衝突未解決数 0 (マージ結果の commit を忘れずに) $ hg ci -m "merge"
file への変更は、コピー先の copy-file にも自動的に反映されました。
$ cat file This is a file This is a new line $ cat copy-file This is a file This is a new line