2012-02-21 19 views
4

最近公開された科学論文に使用したgitプロジェクトがあります。プロジェクトで私はサブディレクトリがdocdoc/paperdoc/talksに分割)resultssrc以上に分かれています。gitのCheckoutサブフォルダ

私はソースコードを公開したいと思いますが(プレゼンテーションスライドなどは公開しません)人々にちょうどsrcサブディレクトリへのアクセスを許可する最良の方法は何ですか?私は、現在のsrcディレクトリのスナップショットを撮るzipファイルをリリースしますが、私は人々に簡単に更新プログラムを入手させたいと思います。

ありがとうございます。 Oliver

+0

Howtoがgitサブディレクトリを抽出し、それからサブモジュールを作り出すことを示すこの質問をチェックしてください:http://stackoverflow.com/questions/920165/howto-extract-a-git-subdirectory-and-make-a -submodule-out-of-it –

答えて

6

ショートバージョン:

あなたはへのアクセスを与えたい最上位フォルダごとに別々のレポを使用する必要があります。 これを行う方法の詳細については、submodulesを参照してください。

「スパース」チェックアウトは機能する可能性がありますが、これはユーザーに強制できません。リポジトリ全体をローカルに複製してから、一部の作業ディレクトリを取得する必要があります。

(自動更新され、変更をプッシュすることもできますが、ユーザベースからフォークとフィックスをマージする機会がなくなります)。

長いバージョン: 臥「新しい」分散バージョン管理システム(Gitは、Mercurialは、バザーなど)はSVNとCVSと同じように、フォルダごとのチェックアウトを中心に構築されていません。ブランチングツリーをディレクトリツリーとは別にすると、リビジョングラフのブランチやマージの処理が簡素化されます。これは、集中化されたVCよりも数が多いためです。 (SVN、IMO、ブランチを扱う&は、スレーブハンマーがスパムの缶を開くのを処理します。その多くは、階層内のどのディレクトリも分岐/マージすることができるためです)。

部分チェックアウト機能は、ブランチ/マージを行わない中央集中型のシナリオでは簡単に実行できます。したがって、当時の人気がありました。あなたはもうそれを得ておらず、おそらくそれを持っていないことに感謝することを学ぶでしょう。 :)

重要なもののいくつかのサブレポジット/サブモジュールを持つ方が簡単です。一番上のレポをブランチすることはやや複雑ですが、作業を簡単にするために設定する方法について考える必要があります。 (プレゼンテーションスライドをリリースしてもそれほど悪くはないでしょうか?)

+0

+1助けてくれてありがとう! – user

+1

... "SVNやCVSのようなフォルダごとのチェックアウトを許可しませんでした" ...これはもう真実ではないようです。 http://stackoverflow.com/questions/180052/checkout-subdirectories-in-git。それでも "これは非常に単純化します..."とはまだ一致していません。 Gitはシンプルではありません。 – AlexeiOst

+0

@AlexeiOst:まあ、とにかくレポのクローン全体が得られます。また、Gitはシンプルではありませんが、私はMercurialをいつでも好きです(より良いUI、多かれ少なかれ同じコンセプト)。そして最後に、SVN/CVSでの履歴追跡をマージすることは、Git/Mercurialや他のDVCSと比べてより困難です。 – Macke

4

gitを使ってリポジトリのサブフォルダだけをチェックアウトする方法はありません。

サブフォルダを独自のリポジトリにすることも、tarballs/zipファイルをあなたの提案どおりに配布することもできます。

git 1.7からは、「スパースチェックアウト」のサポートがあります - hereを参照してください。 - それはまばらな作業コピーだけです。あなたは依然としてユーザにあなたのリポジトリ全体をクローンする能力を与える必要があります。

2

サブモジュールの章のGit Bookに記載されているように、Gitは部分チェックアウトを許可していません

リポジトリを非公開にして、src /の開発を新しい公開用に移行することができます。おそらくgithubには、いくつかのコミュニティ機能があります。バグ追跡、フォロー、それはあなたのフォロワーのためのものを簡素化するでしょう。

関連する問題