2017-08-29 7 views
0
わけではありません。この上で簡潔なタイトルを作成する方法を確認してくださいが、ここの状況だ

- 私たちは、毎週何かの新バージョンをプッシュし続けるGitのメリットを繰り返す画像(シンボリックリンクを経由して)統合に

、それぞれの新しいバージョンの新しいを持っていますレポのディレクトリ。新しいバージョンはそれぞれ、以前のバージョンと同じイメージを持ち、少し冗長です。スペースを節約するために、繰り返しイメージを共有イメージへのシンボリックリンクに置き換えたい(私たちは500MBを押していた)。

Old: 
repo/v1/image1.jpg 
repo/v1/image2.jpg 
repo/v2/image1.jpg (same as v1) 
repo/v2/image2.jpg (same as v1) 
<...> 

New: 
repo/shared_images/image1.jpg 
repo/shared_images/image2.jpg 
repo/v1/image1.jpg -> ../shared/images/image1.jpg 
repo/v1/image2.jpg -> ../shared/images/image2.jpg 
repo/v2/image1.jpg -> ../shared/images/image1.jpg 
repo/v2/image2.jpg -> ../shared/images/image2.jpg 
<...> 

リポジトリにduを使用しているとき、素敵であるチェックアウトされた後、これは間違いなく、ディスク上の全体的なサイズを削減しました。

私はしばらくgitを使ってきましたが、私は舞台裏の魔法に慣れていません。他のメリットはありますか?

あなたは、これがそもそも完全に悪い習慣ですが、実際の質問は答えてしまった場合:)

+0

git repoに静的なファイルをシンボリックリンクすることができます。各画像ファイルにシンボリックリンクを作成するのではなく、フォルダ全体をシンボリックリンクするだけです。 –

+0

良いフィードバックは、ときどきイメージが繰り返されることはなく、バージョン管理されたディレクトリには繰り返されない他のファイルが存在する可能性があります。 –

答えて

1

をあなたの直接の質問に答えるために、私はさらにそれを感謝したいかについて、あなたはメインを同定しているだろう何を言いますメリット、小さな作業ディレクトリgitデータベースの中では、同じファイルが1つのブロブとして保存され、必要に応じて何度も参照されるため、git側でスペースを節約することはできません。

+0

このワークフローはベストプラクティスとはみなされていませんが、このモデルを使用することに決めた理由は非常に良いと思います(急速に進化するAPIへの信頼できるサードパーティのアクセスにより、 ファイルシステムに新しいバージョンを追加すると、毎週ファイルシステムに新しいバージョンを追加すると、持続不可能な状態になります(今日から1年後には、50以上のコピーをチェックアウトする必要があります)。ワークフローの大幅な変更には通常計画と実装にかなりの時間がかかりますので、オプションを検討してその点に到達する必要があるかどうかを確認することをおすすめします。 – LightBender

関連する問題