2016-10-07 7 views
0

私のgitリポジトリには、Microsoft Visioで作成されたダイアグラムを表すファイルworkflow.vsdがあります。ファイルペアのコミットを強制します

私たちのチームの誰もがVisioをインストールしているわけではないので、workflow.vsdを変更する人は、workflow.pngも生成する必要があります。

問題は、しばしば、vsdファイルの新しいバージョンをコミットし、pngをコミットするのを忘れて、イメージが古くなってしまうということです。

同じコミットハッシュの下にworkflow.vsdworkflow.pngの両方が追加された場合にのみgitがコミットを許可する方法はありますか?言い換えれば

、私はVisioのプロジェクトをコミットしたいとPNGもコミットされている場合のみ:

git add workflow.vsd worflow.png 
git commit 

と、これは失敗する:

git add workflow.vsd 
git commit 
+2

プリコミットフックを使用して、自分のコミットがあなたのルールと一致するかどうかをチェックできますが、誰もが独自のプリコミットフックをインストールする必要があります。フックをインストールできる中央サーバーがある場合は、ルールに一致しないプッシュを拒否する事前受信フックを設定できます。プルワークフローを使用する場合は、ルールに一致しないプルリクエストを拒否できます。これらの一部または全部の組み合わせも可能である。 – torek

答えて

2

フックをコミットするには、Gitを使用します.Gitはプロセスのいくつかのポイントにアクセスできます。そのうちの1つは、事前コミットで、コードを注入できます。

これらのファイルは、 git status -s | grep "workflow.vsd"の行に沿って確認できます。

また、pngをチェックし、それがない場合は失敗するか、エスシタロプラムの示唆通りに自動的にpngを生成するスクリプトを実行します。

1

私はその設定に対してお勧めします。ユーザーは、生成されたものをバージョンコントロールに入れる必要はありません。プログラミングでは、vsdなどのソースファイルから派生ファイルを自動的に生成するビルドツールがあります。おそらく、あなたはMakefileやMavenを見たり、ビルドツールを見てみることができます(ただし、vdsからpngを作成するツールがあるかどうかはわかりませんが)。

pngをバージョン管理する必要がある場合は、それを回避するもう1つの方法は、commit hookの»git server«またはローカルリポジトリのいずれかになります。それでも、自動的にpngを生成できるツールが必要です。

ツールを使用していない場合でも、両方のファイルが変更されているかどうかをプログラムでチェックするコミットフックを作成し、必要に応じてコミットを拒否できます。

+0

私は通常、このようなファイルを生成するビルドツールを使用するので、あなたに同意します。しかし、この場合、上級管理者は別の方法を決めました。そのうちのいくつかはOfficeの古いバージョン(Visioなし)を持っていて、ブラウザでBitbucketリンクをクリックすると直接フローを見る必要があるからです。 –

関連する問題