Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Katsunori FUJIWARA
2,379 views
mercurial-users.jp speech at OSC2013 Tokyo/Spring
speech of mercurial-users.jp at OSC2013 Tokyo/Spring on 2013-02-23
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 62
2
/ 62
3
/ 62
4
/ 62
5
/ 62
6
/ 62
7
/ 62
8
/ 62
9
/ 62
10
/ 62
11
/ 62
12
/ 62
13
/ 62
14
/ 62
15
/ 62
16
/ 62
17
/ 62
18
/ 62
19
/ 62
20
/ 62
21
/ 62
22
/ 62
23
/ 62
24
/ 62
25
/ 62
26
/ 62
27
/ 62
28
/ 62
29
/ 62
30
/ 62
31
/ 62
32
/ 62
33
/ 62
34
/ 62
35
/ 62
36
/ 62
37
/ 62
38
/ 62
39
/ 62
40
/ 62
41
/ 62
42
/ 62
43
/ 62
44
/ 62
45
/ 62
46
/ 62
47
/ 62
48
/ 62
49
/ 62
50
/ 62
51
/ 62
52
/ 62
53
/ 62
54
/ 62
55
/ 62
56
/ 62
57
/ 62
58
/ 62
59
/ 62
60
/ 62
61
/ 62
62
/ 62
More Related Content
PDF
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
by
Ryosuke MATSUMOTO
PPTX
バージョン管理のススメ 〜私的歴史探訪編
by
Ken-ichi Kudo
PDF
Solaris (Branded) Zone Internals
by
Katsunori FUJIWARA
PDF
Pythonista も ls を読むべきか?
by
Katsunori FUJIWARA
PPT
Mercurial はオフラインの海を越える
by
zetamatta
PDF
RedmineとGitとスクラム
by
Takashi Okamoto
PDF
Git入門-概念編
by
Shin Tanigawa
PDF
Real legacy
by
Koichiro Ohba
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
by
Ryosuke MATSUMOTO
バージョン管理のススメ 〜私的歴史探訪編
by
Ken-ichi Kudo
Solaris (Branded) Zone Internals
by
Katsunori FUJIWARA
Pythonista も ls を読むべきか?
by
Katsunori FUJIWARA
Mercurial はオフラインの海を越える
by
zetamatta
RedmineとGitとスクラム
by
Takashi Okamoto
Git入門-概念編
by
Shin Tanigawa
Real legacy
by
Koichiro Ohba
Similar to mercurial-users.jp speech at OSC2013 Tokyo/Spring
PDF
分散バージョン管理システムって何なん 20101218
by
Takashi Okamoto
PDF
道具としてのDVCS
by
irof N
PDF
バージョン管理システム比較資料
by
suzzsegv
PDF
Git 20100313
by
Taku AMANO
PDF
Archive: Git 入門(2014/1/10 社内勉強会)
by
Yoko TAMADA
PPTX
Redmine導入しました(公開)
by
Hidekz Hara
PDF
Version管理 1
by
hakoika-itwg
PDF
dvcs-kyoto
by
Naoya Inada
PDF
Enterprise Redmine
by
Dai FUJIHARA
KEY
P4p20120408
by
Naoto Koshikawa
PDF
Agileツール適合化分科会(変更管理・バージョン管理)
by
masanori kataoka
PDF
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
by
真治 米田
PDF
Redmineを使ってみよう
by
mrgoofy33 .
PDF
Git -分散バージョン管理システム-
by
Koji Shinba
PPTX
Ossで作成するチーム開発環境
by
Tadahiro Ishisaka
PDF
超簡単!SubversionとTortoiseSVN入門(操作編1)
by
Shin Tanigawa
PDF
第二回IoT関連技術勉強会 ログ収集編
by
tzm_freedom
PDF
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
by
Takashi Takizawa
PPTX
Yamaguchi webgroup06 subversion
by
Ohishi Mikage
KEY
Git (実践入門編)
by
Naomichi Yamakita
分散バージョン管理システムって何なん 20101218
by
Takashi Okamoto
道具としてのDVCS
by
irof N
バージョン管理システム比較資料
by
suzzsegv
Git 20100313
by
Taku AMANO
Archive: Git 入門(2014/1/10 社内勉強会)
by
Yoko TAMADA
Redmine導入しました(公開)
by
Hidekz Hara
Version管理 1
by
hakoika-itwg
dvcs-kyoto
by
Naoya Inada
Enterprise Redmine
by
Dai FUJIHARA
P4p20120408
by
Naoto Koshikawa
Agileツール適合化分科会(変更管理・バージョン管理)
by
masanori kataoka
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
by
真治 米田
Redmineを使ってみよう
by
mrgoofy33 .
Git -分散バージョン管理システム-
by
Koji Shinba
Ossで作成するチーム開発環境
by
Tadahiro Ishisaka
超簡単!SubversionとTortoiseSVN入門(操作編1)
by
Shin Tanigawa
第二回IoT関連技術勉強会 ログ収集編
by
tzm_freedom
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
by
Takashi Takizawa
Yamaguchi webgroup06 subversion
by
Ohishi Mikage
Git (実践入門編)
by
Naomichi Yamakita
mercurial-users.jp speech at OSC2013 Tokyo/Spring
1.
Mercurial で簡単履歴管理
藤原 克則 1 OSC 2013 Tokyo/Spring
2.
自己紹介 2
OSC 2013 Tokyo/Spring
3.
• 藤原 克則(FUJIWARA
Katsunori) @flyingfoozy http://d.hatena.ne.jp/flying-foozy/ • Mercurial プロジェクトへの関与 – メッセージ日本語翻訳のコミッタ – コントリビュータとして、日々修正を提案 • 『入門Mercurial』(秀和システム刊)を執筆 3 OSC 2013 Tokyo/Spring
4.
GUIメインの入門書を出版します!
• TortoiseHgを利用した、 GUIによる履歴管理の入門書 • 2月27日頃から順次、 店頭に並ぶ予定 (地域によって異なります) http://www.lares.dti.ne.jp/~foozy/fujiguruma/scm/mercurial-books.html#thgbook 4 OSC 2013 Tokyo/Spring
5.
履歴管理とは?
5 OSC 2013 Tokyo/Spring
6.
履歴管理の機能 • ファイルの変更内容の記録/参照 –
変更内容ベースの情報: • 変更対象ファイル(What) • 変更箇所(Where) • 変更内容(How) – 変更に関するメタデータ: • 変更実施者(Who) • 実施日時(When) • 変更理由(Why) 6 OSC 2013 Tokyo/Spring
7.
履歴管理の利点 • 特定時点の状態への復帰 –
想定外の変更の取り消し – 以前の状態での動作確認 • 記録内容を元にした履歴の検索/情報抽出 – 障害発生時の原因となった変更の特定 – 別視点での分析: ファイル別/作業者別の変更頻度など • 並行して実施される作業の隔離/統合 – 記録された情報をベースに行うので、何度でもやり直しができる 7 OSC 2013 Tokyo/Spring
8.
履歴管理ツールの世代分類
8 OSC 2013 Tokyo/Spring
9.
履歴管理ツールの世代分類 • Bryan O'Sullivan
氏の 『Mercurial: The Definitive Guide』における分類 – http://www.lares.dti.ne.jp/~foozy/fujiguruma/scm/mercurial- books.html#bosbook 9 OSC 2013 Tokyo/Spring
10.
第0世代 • (一般的な)専用ツールを、全く使用しない履歴管理 –
『履歴管理』という名の『無法地帯』 • 変更前/後ファイルの手動保存 – ファイル名末尾に日付をつけて保存 – 定期的に作業成果のアーカイブを作成 • 複数人で並行作業する場合は – 同一領域を共有して並行作業するか、あるいは – 各自の作業後に、成果物を共有領域に上書き 10 OSC 2013 Tokyo/Spring
11.
第0世代の問題点 • メタデータ/変更内容の管理が面倒 –
別ファイル(テキストファイル or エクセル)で管理 – メターデータ相当の情報や、修正前の内容をコメントとして残す – 結果として、整合性の維持が困難になったり、可読性が低下するなど • 必要になってからの、履歴の振り返りが面倒 – 人手が介在するため、誤操作の可能性も高い • 成果記録の安全性確保が難しい – 操作ミスにより、他人の成果を上書きする危険性 • エトセトラエトセトラ…… 11 OSC 2013 Tokyo/Spring
12.
第1世代 • 履歴情報の記録場所(リポジトリ)と、作業領域が隣接 –
代表的なツール: SCCS, RCS • 複数人で並行作業する場合 – 同一領域を共有して並行作業 – 同一ファイルへの同時変更を防止するための排他機能あり 12 OSC 2013 Tokyo/Spring
13.
第1世代の問題点 • 履歴が記録されている、一か所でしか作業できない • 並行作業での安全性確保が難しい
– 同一領域を共有するため、作業成果の独立性が保てない – 排他機能を利用した場合に、排他解放漏れが多発する • エトセトラエトセトラ… … 13 OSC 2013 Tokyo/Spring
14.
第2世代 • リポジトリと作業領域が分離(『中央リポジトリ』型) –
代表的ツール: CVS, Subversion, Visual SourceSafe etc… • 独立した作業領域を使用できるので、 各自の作業成果の独立性が確保できる • クライアント/サーバモデルを導入したことで、 リモートホストでも作業可能 14 OSC 2013 Tokyo/Spring
15.
第2世代の問題点 • リポジトリへの常時アクセスが前提 –
オフライン/ネットワークアクセス制限のある環境での作業が困難 – 応答性が、ネットワーク帯域やサーバ性能に左右される • 履歴記録内容が即時リポジトリに反映 – 作業の途中成果を、バックアップ代わりに記録したりできない • 機能実現上、並行開発に難あり – 履歴の記録が一本道であることが前提 – 継続的なブランチ運用が困難(マージに関しての配慮が不十分) • エトセトラエトセトラ… … 15 OSC 2013 Tokyo/Spring
16.
第3世代 • リポジトリと作業領域が隣接(ただし『分散リポジトリ』型)
– 代表的ツール: Git, Mercurial, Bazaar etc … • 並行開発への配慮 – 履歴の枝分かれ/ブランチ運用の簡便化(=マージの簡便化) – 履歴管理で今最も熱い話題の1つが『ブランチ運用方法』なのは、 第2世代での不満の反動か?(笑) • 個々のリポジトリが、完結した(completed)履歴情報を保持するため、 他リポジトリと連携できない(オフラインな)状況でも、単独で動作可能 • リポジトリ間で、相互に履歴情報の伝搬が可能 – 複数の手段/経路を選択可能 – 負荷分散が容易 16 OSC 2013 Tokyo/Spring
17.
第3世代の問題点 • 難しい(と思われている) –
『分散リポジトリ』という肩書が問題? • 運用の自由度が高い – ブランチ運用などは、最終的に組織としての、 『開発プロセス』や『品質保証方針』などとの兼ね合いになる – それぞれの組織にとっての『最適解』に到達するには、 ある程度の試行錯誤が必要かも? 17 OSC 2013 Tokyo/Spring
18.
Mercurialの利点
18 OSC 2013 Tokyo/Spring
19.
Mercurialとは? • 分散リポジトリ型(第3世代)の履歴管理ツール http://mercurial.selenic.com/ •
コマンド名は “hg” – “Mercurial” の名前の由来である『水銀』(mercury)の元素記号 • Pythonをはじめとする各種OSSの履歴管理で採用 – 『A list of projects using Mercurial』 http://mercurial.selenic.com/wiki/ProjectsUsingMercurial 19 OSC 2013 Tokyo/Spring
20.
概念モデルが簡単 • 記録された履歴は、常に参照可能
– デフォルトの履歴一覧で常時出力される – 『HEAD を移動させると記録した履歴が見えなくなる』といったことが無い – 『一定期間参照されない履歴が破棄される』といったことが無い • 履歴の枝分かれ/ブランチの概念が単純 – Mercurialの『(名前付き)ブランチ』は、CVS/Subversionの『ブランチ』に近い概念 – Gitの『ブランチ』は概念レベルで別物 http://d.hatena.ne.jp/flying-foozy/20120801 参照 • CVS/Subversion経験者や、履歴管理初心者にとって、 理解の障壁が低い 20 OSC 2013 Tokyo/Spring
21.
コマンドラインUIが簡単 • 『1機能1コマンド』 • 最小限の基本コマンドセットで履歴管理可能 •
オプションの名称/用途がコマンド間で統一 • オンラインヘルプ/出力メッセージが、 (ほぼ)100%日本語翻訳済み – 折角の翻訳メッセージファイルが同梱されていない、 残念なパッケージを公開しているディストリビューションもありますが … 21 OSC 2013 Tokyo/Spring
22.
強力な履歴検索機能 • 複雑な条件指定でのリビジョン抽出が可能 –
コミット実施ユーザ名 – コミット実施日時(期間指定可能) – 特定のリビジョンの子孫、あるいは祖先のみの抽出 – 特定のファイル/フォルダに関する修正実施リビジョン – マージ実施の有無 – エトセトラエトセトラ… – さらに、and/or や括弧(優先度指定)による任意の条件の組み合わせ • 使用例に関しては以下のブログエントリ等を参照 – http://d.hatena.ne.jp/flying-foozy/20120511/ 22 OSC 2013 Tokyo/Spring
23.
TortoiseHgなら簡単GUI操作
23 OSC 2013 Tokyo/Spring
24.
各種IDE向けプラグイン • 詳細は Mercurial
の Wiki ページで – 『Information about other tools that work with Mercurial. 』 http://mercurial.selenic.com/wiki/OtherTools 24 OSC 2013 Tokyo/Spring
25.
エクステンションによる機能拡張 • 標準同梱の『エクステンション』を有効にすることで、 Gitと比較して遜色のない機能を使用可能
– 履歴改変: rebase, histedit, MQ – CUI利用時に便利な機能: color, progress, pager, record – 挙動拡張: eol, keyword, largefiles • 基本機能と分離することで – 初期導入のコスト(覚えなければならない事)を下げる – 不慣れな利用者による履歴破壊の危険を回避 25 OSC 2013 Tokyo/Spring
26.
Mercurial導入の障壁
26 OSC 2013 Tokyo/Spring
27.
情緒的な障壁 • 履歴管理ツール自体に対する無理解 –
『履歴管理ツールなんて必要ない』、『手動管理で十分』 – 『自前のツールの方が良い』、『OSSは品質が不安』 • 変化への抵抗 – 『変更を”管理”されるのは嫌だ!』 – 『新しいことを覚えるのは面倒だ!』 27 OSC 2013 Tokyo/Spring
28.
導入コストの障壁 • 既に第2世代ツールが運用されている環境では 第3世代ツールのメリットがなかなか理解してもらえない
– 『小規模なら第2世代で十分』と考えがち – 不便な現状に順応し過ぎて、問題の存在を認識できない • ブランチ運用の困難性 • 中央リポジトリ型の運用柔軟性の低さ • 結果として、初期導入コストに対する抵抗がある • 組織の規模に比例して、コスト由来の抵抗は増加 28 OSC 2013 Tokyo/Spring
29.
政治的な障壁 • 顧客からの使用ツール指定 • 第1~2世代ツールの開発元/販売元
29 OSC 2013 Tokyo/Spring
30.
ゲリラ的Mercurial導入のススメ • 『組織へのMercurialの導入』を目的にすると大変
– 組織の論理や、情緒的な話には、付き合うだけ無駄 • とは言え、周りが使うツールに合わせることで、 自分(達)まで地獄を見る必要は無いよね? • こっそりMercurialを使って、 せめて自分(達)だけは生き延びよう! 30 OSC 2013 Tokyo/Spring
31.
31
OSC 2013 Tokyo/Spring
32.
あるいはトムソーヤ的戦術 • 『~~で便利なので、Mercurial を導入しましょう!』
⇒ 『あーあー、やりたくなーい!面倒臭ーい!』 • 『皆さん大変ですね。私は個人的にMercurialで管理 してるから困りませんけど。おっと、口が滑った。』 ⇒『何それ?俺達にも教えろ、ゴラァ! (#゚Д゚)』 32 OSC 2013 Tokyo/Spring
33.
ゲリラ的Mercurial導入
33 OSC 2013 Tokyo/Spring
34.
ゲリラ的Mercurial導入では… • 自分(達)の作業成果は、内部的にMercurialで管理 • 対外的には、他の履歴管理ツールを使っているように
見せかける – CVS、Subversion、あるいは第0世代ツール(=手動管理) • 自分(達)以外の作業履歴もMercurial側に取り込む – 履歴検索等での利便性 34 OSC 2013 Tokyo/Spring
35.
運用方針 • 連携先(=他の履歴管理ツール)からの取り込みは自動変換 • 連携先への反映は、連携先のツールを使用
– Mercurial側のリビジョンと、連携先に反映されるリビジョンとの間での、 一対一対応の制約を回避 – 制約回避によって、Mercurial 側での内部的な履歴記録の自由度 (記録粒度/ブランチ利用等)を確保 • 構成が多少複雑でも、誤操作の余地が少ない手順 • 第0世代ツールでの取り込み/反映は、手動で頑張る…orz 35 OSC 2013 Tokyo/Spring
36.
全体構成 36
OSC 2013 Tokyo/Spring
37.
連携先からの履歴取り込み • Mercurialリポジトリ repo-sync
に、連携先から履歴取り込み – 基本的には、標準同梱の convert エクステンションで変換可能 • CVS, Subversion, Git, Bazaar etc … – 状況/形式次第では、3rd party エクステンション/外部ツールの利用も • hgsubversion エクステンションや Tailor など • 詳細は『Converting Repositories』参照 http://mercurial.selenic.com/wiki/RepositoryConversion • 連携先でのブランチ/タグもそのまま取り込み可能 – メイントランク(main trunk)の履歴は default ブランチに記録 – それ以外は、同一名称のブランチに記録 37 OSC 2013 Tokyo/Spring
38.
38
OSC 2013 Tokyo/Spring
39.
連携先(の main trunk)から取り込んだ履歴は、default
ブランチに記録される。 39 OSC 2013 Tokyo/Spring
40.
取り込み履歴の共有 • 連携先とMercurial側とのすり合わせ作業は、 sync-default
ブランチで実施 – default ブランチの最新リビジョンからブランチを作成(初回のみ) – 連携先から継続的に取り込まれた履歴は、 都度 default から sync-default にマージ – マージ成果は、リポジトリ repo-shared に反映 40 OSC 2013 Tokyo/Spring
41.
41
OSC 2013 Tokyo/Spring
42.
default と sync-default
の間では、常に default ⇒ sync-default 方向にのみマージを実施。 42 OSC 2013 Tokyo/Spring
43.
独自作業成果の記録 • 独自作業成果は、hg-default ブランチ上で記録
– sync-default の最新リビジョンから、ブランチを作成(初回のみ) – 連携先から継続的に取り込まれた履歴は、 sync-default ブランチを経由して hg-default にも都度マージ – チームメンバは、共有リポジトリ repo-shared 経由で成果を共有 – Mercurial の機能をフルに使用可能 • 独自の(=連携先には見せない)ブランチ作成 • 名前なしブランチで複数ヘッド状態 • 共有リポジトリを経由しない履歴伝搬などなど 43 OSC 2013 Tokyo/Spring
44.
44
OSC 2013 Tokyo/Spring
45.
hg-default あるいはそこから派生したブランチ上の履歴記録は、連携先の管理モデル(e.g. 一本道)の制約を 受けずに、Mercurialの機能をフルに使用可能
45 OSC 2013 Tokyo/Spring
46.
独自作業成果反映用リポジトリの作成 • 作業領域の『ハイブリッド』(hybrid)化 (初回のみ)
– 連携先からのチェックアウト “cvs checkout” や “svn checkout” – チェックアウトした領域を、Mercurialリポジトリとしても初期化 “hg init” (+ “hg pull repo-shared”) 46 OSC 2013 Tokyo/Spring
47.
連携対象 47
OSC 2013 Tokyo/Spring
48.
ハイブリッド領域の同期 • 連携先の最新リビジョンで、作業領域を更新
– 最新内容で強制的に上書き: “cvs update –C” など • sync-default ブランチの最新リビジョンで、作業領域を更新 – 最新内容で強制的に上書き: “hg update –-clean sync-default” • 連携先に対して、差分の有無を確認 – “cvs diff”, “svn diff” など • 差分があるなら、『連携先からの履歴取り込み』から繰り返し – こちらの作業中に、連携先に新規リビジョンが追加されている筈 48 OSC 2013 Tokyo/Spring
49.
連携対象 49
OSC 2013 Tokyo/Spring
50.
ハイブリッドリポジトリの作業領域同期では、Mercurial側の同期対象が、defaultブランチではなく sync-default上のリビジョンである 点に注意。defaultは連携先からの取り込み専用として使用し、成果統合等のすり合わせ作業は、sync-default上で実施する。
50 OSC 2013 Tokyo/Spring
51.
連携先への独自作業成果の反映 • hg-default ブランチから
sync-default にマージ • repo-hybrid リポジトリにマージ結果を反映 • repo-hybrid の作業領域をマージ実施リビジョンで強制更新 – “hg update –-clean sync-default” – 事前に適切に同期されていれば、 マージした独自作業成果=連携先との差分=連携先への反映内容 • 連携先に変更内容を記録 – “cvs commit”, “svn commit” など – 必要であれば、新規ファイルの add や、不要ファイルの remove も、 commit 前に手動で実施 51 OSC 2013 Tokyo/Spring
52.
連携対象 52
OSC 2013 Tokyo/Spring
53.
ハイブリッドな作業領域が、先述した要領で連携先/Mercurialの両方に同期された状態から作業することで、 hg-default ブランチからマージした独自作業成果Xを、連携先にCとして適切に反映することが可能。
53 OSC 2013 Tokyo/Spring
54.
独自作業成果反映直後の、連携先からの取り込みでは、X と同内容の C
が取り込まれるが、『B⇒C』と『b⇒X』 は全く同一の変更になることから、CとXのマージは、Mercurialでは衝突等が発生しない。 54 OSC 2013 Tokyo/Spring
55.
リポジトリ/ブランチが多数登場するが… • 役割を固定化することで: –
作業手順を固定化可能 – 『状況に応じた判断』に由来する誤操作の危険性を低減可能 • 1つのリポジトリ/ブランチで、役割を兼務させると: – うっかり他の作業を実施してしまうかも? – 『ハイブリッド領域の同期』などで、手順が増えてしまうかも? • これだけブランチ/マージを多用しても、 Mercurialなら楽々運用可能 55 OSC 2013 Tokyo/Spring
56.
日本でのコミュニティ活動の紹介
56 OSC 2013 Tokyo/Spring
57.
メーリングリスト • mercurial-ja
– https://groups.google.com/forum/?fromgroups#!forum/mercurial-ja – リリース情報/障害情報等もアナウンスしてます 57 OSC 2013 Tokyo/Spring
58.
Twitter • 公式コミュニティアカウント @mercurialjp •
公式コミュニティハッシュタグ #mercurialjp 58 OSC 2013 Tokyo/Spring
59.
公式サイト • http://mercurial-users.jp/
– イベント開催/参加情報 • 勉強会の開催 • 各種イベントでの出張ハンズオンなど – 最新版の日本語オンラインマニュアルの公開 – 各種情報へのリンク • メーリングリスト等へのリンクも! 59 OSC 2013 Tokyo/Spring
60.
つぶやきも立派な貢献です! • Twitter上の発言等に由来する、 Mercurial本体に取り込まれた修正が、
2012年の一年間で10件以上 – 『Mercurial に関するコミュニティ由来の成果(2012年版)』 http://d.hatena.ne.jp/flying-foozy/20130109 • 疑問/要望等あれば、どんどんお寄せください 60 OSC 2013 Tokyo/Spring
61.
勉強会開催情報 • “TokyoMercurial” と題して、
03/23(土)に勉強会を開催します http://connpass.com/event/1855/ • お菓子を食べながらの和やかな会ですので、 『履歴管理ツールの利用は初めて』な方から、 『Mercurialの中身を知りたい』な方まで、 お気軽に参加ください! 61 OSC 2013 Tokyo/Spring
62.
本日はありがとうございました
62 OSC 2013 Tokyo/Spring
Download