2016-03-31 22 views
0

背景:私はアプリケーションの新しいバージョンを取り出し、起動しようとするとクラッシュしました。しばらくして私が知った問題を調査した後、いくつかの欠けている依存アプリケーションが今必要となっていました。git pullの前にプロンプ​​トメッセージ

gitにいくつかの機能が含まれていると思いますので、push新しいバージョンを使用すると、他の人がgit pullを実行したときに表示されるメッセージを追加できます。たとえば、git pullを実行したときに、このバージョンにインストールする必要のある依存関係があることを伝えるメッセージが表示されます。

新しいものがあるかどうかを確認するたびにREADMEを取得することに興味はありませんが、gitワークフローでは「統合」されています。たとえば、大きな変更がある場合はapt-getのように、何が変更されたかを示すプロンプトが表示され、実際にそのメッセージから抜け出すにはqを押す必要があります。

仲間はフックを使用している可能性があると言いましたが、どうやってそれをするかわかりませんでした。

+1

'git'はソース管理ツールであり、ソフトウェアの配布メカニズムではないので、そのような機能はありません。依存関係や警告メッセージなどは、ビルドスクリプトとインストールスクリプトの一部として処理する必要があります。 – larsks

答えて

0

一種ですが、この道を下りたくないです。

あなたはwrite a hook、特にpost-mergeフックをすることができますが、リポジトリのクローンを作成するときフックはコピーされません。あなたのレポをクローンした人は、必要なフックをインストールするために余分なステップを踏まなければなりません。 You can put hooks on the server/upstream sideですが、それは上流へのプッシュに関するポリシーのみを強制できます。

より良い選択肢は、依存関係をsubmoduleとして追加してビルドプロセスの一部としてビルドすることです。これらのサブモジュールがプロジェクトの一部である場合、これは良いアイデアです。これは、独自のリポジトリに分割した共通コードのようです。

通常のパッケージインストールプロセス(apt-getなど)を迂回し、ユーザーに複数のバージョンのコードがあるため、他人のコードであるとこれは悪い考えです。また、バイナリからインストールするよりはるかに多くを構築しなければならないということも意味します。


As @larsks pointed out int he comments、Gitはリリースマネージャではありません、またそれは、ビルドツール、またインストールツール、また依存関係のマネージャーです。あなたはそれを強姦しようとすることができますが、それは非常に良い仕事をしません。

代わりに、依存関係マネージャを備えたビルドツールが必要です。これらは通常、言語に依存します。

関連する問題