6

私たちの開発チームは、バージョン管理に git を使用し、大きなバイナリ ファイル (データ バイナリ、イメージ、テスト バイナリなど) を保存するために git-annex を使用しています。セットアップして使用することはできましたが、一連のトラブルがありました。

私たちが頻繁に実行する、問題を引き起こす一般的なアクションは次のとおりです。

  1. 開発者 1 は、新しい機能のいくつかのテストを追加し、git-annex を使用してテストに対応するデータを追加します。

    git add <test-file>
    git annex add <data-file>
    git annex copy <data-file> --to=<remote location(we use s3 if that is relevant)>
    git commit -m 'Tests with data'
    git push
    git annex sync
    
  2. 作業はレビューされ、マージされます (ホスティングには Github を使用し、開発者が独自のフォークですべての作業を行い、プル リクエストを通じてメイン リポジトリにマージするフォーク モデルに従います)。

  3. 開発者 2 はアップストリームとフェッチ/マージし、自分のマシンでテストを実行しようとします。

    git fetch upstream
    git merge upstream/<branch>
    git annex sync
    git annex get
    

多くの場合、テスト データが git で追跡されないか、リモートの場所からダウンロードできないという結果になります。

ワークフローで git-annex を使用する良い方法は何ですか?

余談ですが、そのようなワークフローをより良く/より管理しやすくする他のオプションは何ですか?

4

2 に答える 2

2

では、どうぞ:

手動の git annex v6 の使用:

サーバー1 & サーバー2:

mkdir testdata
cd testdata
git init
git annex init "LocationNameIdentifyer"
git annex upgrade
git remote add OtherServerLocationNameIdentifyer ssh://otherserver.com/thedir

このセットアップの準備ができて、ディレクトリに余分なファイルがなくなったら、実行できます

git annex sync --content

両方の場所にファイルがある場合は、両方の場所で行う必要があります

git add --all 

いわゆるロック解除されたファイルとして現在のファイルを追跡するために両方の場所で

git annex sync --content 

実行された両方の場所で 3 回言ってみましょう

すべてがマージされ、両方の場所で git annex sync --content を cron で実行できるようになり、両方の場所に配置した新しいファイルを追跡したい場合は、両方のワークツリーに同じファイルがあります。いわゆるロックされたファイルとしてのファイルは、まったく別のワークフローになります

于 2016-03-18T10:55:33.250 に答える