dvcs-kyoto
DESCRIPTION
分散型バージョン管理システム勉強会@京都TRANSCRIPT
![Page 1: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/1.jpg)
Mercurialワークショップ
分散型バージョン管理システム勉強会@京都2011-07-23
![Page 2: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/2.jpg)
自己紹介
● 稲田 尚也 (@naoina)● ガラスの十代 (0x19歳)● 京都のPythonista● https://bitbucket.org/naoina● 面白い勉強会あれば教えてください
![Page 3: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/3.jpg)
Mercurialとは
![Page 4: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/4.jpg)
Mercurialとは
● バージョン管理システムの1つ● DVCS● 実装はPython (一部C言語)● 読みは「まーきゅりある」
![Page 5: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/5.jpg)
Mercurialとは
● バージョン管理システムの1つ● DVCS● 実装はPython (一部C言語)● 読みは「まーきゅりある」
![Page 6: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/6.jpg)
Mercurialとは
● コマンド名は「hg」
![Page 7: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/7.jpg)
Mercurialとは
● コマンド名は「hg」
![Page 8: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/8.jpg)
Mercurialとは
● コマンド名は「hg」
● Mercurial = 水銀 = hg
![Page 9: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/9.jpg)
Mercurialとは
● コマンド名は「hg」
● Mercurial = 水銀 = hg
![Page 10: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/10.jpg)
Mercurial使用プロジェクト
● Python● Vim● Mozilla● OpenSolaris● OpenJDK● etc...
![Page 11: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/11.jpg)
DVCSとは
● Distributed Version Control System● 分散バージョン管理システム● SubversionやCVSは中央集中型● SCMという言葉もあります● Source Code Management
![Page 12: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/12.jpg)
DVCSの特徴
![Page 13: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/13.jpg)
DVCSの特徴
● サーバーを立てる必要がない– リポジトリがローカルだけで完結できる!
● ネットワークに繋がってなくてもいい– svn logとかイライラしますよね?
● 脅威の冗長性– 全てのリポジトリが中央リポジトリ!
![Page 14: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/14.jpg)
Mercurial
![Page 15: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/15.jpg)
設定
![Page 16: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/16.jpg)
設定
.hgrcを編集– Unix系: $HOME/.hgrc– Windows: %USERPROFILE%¥Mercurial.ini
![Page 18: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/18.jpg)
Mercurialの使い方
![Page 19: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/19.jpg)
Mercurialの使い方
1. リポジトリの作成
2. ファイルの追加
3. ファイルの変更
4. コミット
5. コミットの確認
![Page 20: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/20.jpg)
リポジトリの作成
hg init
![Page 21: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/21.jpg)
ファイルの追加
hg add
![Page 22: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/22.jpg)
ファイルの変更
hg removehg copy
hg rename
![Page 23: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/23.jpg)
コミット
hg commit
![Page 24: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/24.jpg)
コミットの確認
hg log
![Page 25: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/25.jpg)
ここまでの内容で質問あればどうぞ
![Page 26: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/26.jpg)
続・Mercurialの使い方
6. リポジトリの複製
7. 変更の確認
8. 変更の取り消し
9. 変更の取り込み
10. 作業スペースの更新
11. マージ
12. 変更の反映
![Page 27: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/27.jpg)
リポジトリの複製
hg clone
![Page 29: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/29.jpg)
変更の確認
hg statushg summary
hg diff
![Page 30: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/30.jpg)
コマンドのエイリアス
% hg status
この部分
● ここでいう `コマンド` は
![Page 31: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/31.jpg)
コマンドのエイリアス
% hg status
% hg st
% hg shg: command 's' is ambiguous: serve showconfig status summary
% hg stat
![Page 32: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/32.jpg)
変更の取り消し
hg revert
![Page 33: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/33.jpg)
変更の取り込み
hg incominghg pull
![Page 34: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/34.jpg)
作業スペースの更新
hg update
![Page 35: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/35.jpg)
マージ
hg mergehg resolve
![Page 36: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/36.jpg)
無名ブランチ
● 変更がコンフリクトした場合に勝手に名前の無いブランチが作られる
changeset:1 changeset:2
default
![Page 37: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/37.jpg)
無名ブランチ
● 変更がコンフリクトした場合に勝手に名前の無いブランチが作られる
changeset:1 changeset:2
changeset:2a
default
![Page 38: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/38.jpg)
無名ブランチ
● 変更がコンフリクトした場合に勝手に名前の無いブランチが作られる
changeset:1 changeset:3changeset:2
changeset:2a
changeset:4(2a)
default
![Page 39: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/39.jpg)
変更の反映
hg outgoinghg push
![Page 40: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/40.jpg)
ここまでの内容で質問あればどうぞ
![Page 41: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/41.jpg)
拡張機能
● MQ [http://mercurial.selenic.com/wiki/JapaneseMqExtension]
– スイスアーミーナイフ– パッチ管理やコミットの削除、改変など
● Rebase [http://mercurial.selenic.com/wiki/RebaseExtension]
– 伝家の宝刀– mergeの代わりにrebase– 知らないでは済まされない
![Page 42: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/42.jpg)
拡張機能
● Bookmarks [http://mercurial.selenic.com/wiki/BookmarksExtension]
– チェンジセットへの削除可能なポインタが作れる
● Record [http://mercurial.selenic.com/wiki/RecordExtension]
– ファイル中の変更を選択してコミットできる
● Transplant [http://mercurial.selenic.com/wiki/TransplantExtension]
– 特定チェンジセットだけを移植できる
![Page 43: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/43.jpg)
Mercurialvs
Git
![Page 44: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/44.jpg)
履歴の指定
![Page 45: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/45.jpg)
履歴の指定
Mercurial– ハッシュ– リビジョン番号
![Page 46: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/46.jpg)
履歴の指定
Mercurial– ハッシュ– リビジョン番号
Git– ハッシュのみ
![Page 47: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/47.jpg)
Extension vs All-In-One
![Page 48: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/48.jpg)
Extension vs All-In-One
Mercurial– 包丁– 足りない機能は拡張機能で個別に追加
![Page 49: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/49.jpg)
Extension vs All-In-One
Mercurial– 包丁– 足りない機能は拡張機能で個別に追加
Git– スイスアーミーナイフ– 最初からなんでもできる
![Page 50: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/50.jpg)
pullの動作
![Page 51: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/51.jpg)
pullの動作
Mercurial– 作業スペースの更新はしない
![Page 52: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/52.jpg)
pullの動作
Mercurial– 作業スペースの更新はされない
Git– 作業スペースの更新が自動でされる– hg pull -u
![Page 53: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/53.jpg)
タイプ数
![Page 54: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/54.jpg)
タイプ数
Mercurial– hg– 2文字
![Page 55: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/55.jpg)
タイプ数
Mercurial– hg– 2文字
Git– git– 3文字
![Page 56: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/56.jpg)
タイプ数
Mercurial– hg– 2文字
Git– git– 3文字
10万回コマンドを打鍵hg → 200000文字git → 300000文字
![Page 57: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/57.jpg)
タイプ数
Mercurial– hg– 2文字
Git– git– 3文字
10万回コマンドを打鍵hg → 200000文字git → 300000文字
7key/secで打鍵してもhg → 約28571秒git → 約42857秒
![Page 58: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/58.jpg)
タイプ数
Mercurial– hg– 2文字
Git– git– 3文字
10万回コマンドを打鍵hg → 200000文字git → 300000文字
7key/secで打鍵してもhg → 約28571秒git → 約42857秒
約14286秒の差!(約4時間)
![Page 60: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/60.jpg)
質疑応答
![Page 61: dvcs-kyoto](https://reader033.vdocuments.pub/reader033/viewer/2022060117/558575b6d8b42a422c8b4e8b/html5/thumbnails/61.jpg)
ありがとうございました