A-Listers

140字に収まらない海外テックネタヘッドライン

Git SubmoduleのトラブルをGit Subtreeで解決できると知っていますか?

leave a comment »

gitsub

ライブラリやフレームワークなど、外部のリポジトリで管理されているソースコードをプロジェクトに取り込む際によく使われているgit submoduleを使わないほうが良いという論争が起こっています。それを受けてgit subtreeを使うべきであるというエントリがAtlassianのNicola Paolucci氏がブログに投稿しています。彼はまずgit submoduleを使うべきではないという話題が盛り上がっているという事で3つの記事を参照したあとに、git subtreeを使うべき理由と使用例を挙げています。それによるとgit subtreeを使うべき理由は以下のとおり。

  • ワークフローがシンプルなので管理が簡単。
  • 古いバージョンのgitもサポートしている。(v1.5.2ですら。)
  • サブプロジェクトのコードがcloneした直後に利用できる。
  • subtreeはユーザに新しい学習を要求しない。subtreeを依存性の解決に使っていることは無視する事ができる。
  • subtreeは新しいメタデータファイルを追加しない。例えばsubmodules が追加する.gitmoduleのようなファイル。
  • モジュールの内容を別のリポジトリのコピーなどを他所に持たなくても編集できる。

もちろん、git subtreeを使う事への代償もありますが、これらは受け入れられるというあろうとして、下記のように挙げています。

  • subtreeをマージする戦略について学ぶ必要がある。
  • サブプロジェクトのアップストリームにコントリビュートするのはやや複雑になる。
  • 親プロジェクトとサブプロジェクトのコミットを混ぜないようにする責任は自分自身にある。

具体的な利用例は元記事の残りを見て頂くとして、subtreeがsubmoduleを使う場合によくある問題をクリアしていることがわかります。基本的には新たなremoteを追加して別々にmergeしていくだけなのでブランチの管理のような感覚で利用できるという事でsubmoduleを避けてわざわざコピーしてしまったような場合はsubtreeの利用を検討してはどうでしょうか。

via:http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/

Written by yandod

2013/05/17 @ 09:05

カテゴリー: Uncategorized

Tagged with

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。