3

いくつかのバイナリ ファイル (ドキュメント、実行可能なバイナリ ファイル、画像など) を に保持しgit-annex、それらを として複数のプロジェクトに含めたいと考えていgit-submodulesます。これにより、古いプロジェクトを古いバージョンにリンクし、新しいプロジェクトを新しいバージョンにリンクしたまま、これらの大きなファイルの正しいバージョンを追跡できるようになると思います。

そのため、大きなファイル用に次のレポを作成します。

mkdir annexedrepo
cd annexedrepo
cp big_files annexedrepo/
git init
git annex init
git annex add .

次に、私のプロジェクト リポジトリに移動し、それらをサブモジュールとして追加します。

cd ../otherrepo
mkdir data
git submodule add ../annexedrepo data/annexed

これらが他のレポの正しいファイルへのシンボリックリンクとして表示されるといいのですが。しかし、必要に応じてコピーを作成できれば十分だと思います。

git annex get data/annexed

これにより、ファイルがコピーされます - で確認できますotherrepo/.git/module/data/annexed/objects/。しかし、これを行うと、添付されたファイルは無効なシンボリック リンクになります。でリストアップできますがls data/annexed/、誰も家にいません。

私は頭がおかしいことをしようとしていますか? これを修正する方法はありますか?これらのバグは、またはのどちらにありますgit-submodulegit-annex? ご協力いただきありがとうございます!

4

2 に答える 2

3

さて、少しいじって、回避策を見つけました。でも、もっと良いものを見たいです。後世のためにこれを投稿しますが、より良い解決策を見つけたいと思っています。

には、 への参照を含むdata/annexedファイル があります。このファイルを削除し、同じ場所へのシンボリック リンクに置き換えました。内部から にアクセスできるようになり、ファイルは適切なバージョンになっています。この回避策で将来問題が発生するのではないかと少し心配しています....git../../.git/module/data/annexed/../annexedrepo/data/annexed

于 2013-08-14T17:26:32.973 に答える
3

私は同じソースツリー構造を使用しており、使用しようとしましgit-annexたが、同じ問題に遭遇しました。git-fat代わりに拡張機能を使用できることがわかり、git-annexそのような問題はありません。したがって、ソース ツリーは次のようになります。

/project
    .git
    .gitmodules
    ...
    <project files and folders>
    ...
    submodule
        .git
        .gitattributes
        .gitfat
        ...
        <binary files>
        ...

そのようなプロジェクトを複製するには

git clone git://... project
cd project
git submodule init
git submodule update
cd submodule
git fat init
git fat pull

ファイルをプッシュ/プルするために使用git-fatします。git-fat の詳細を参照してくださいrsync

于 2013-09-27T11:13:19.643 に答える