10

jQuery プラグインを作成し、それをリポジトリ (私の場合は Mercurial) に追加するとします。それは単一のファイルですjquery.plugin.js。私は BitBucket を使用してこのリポジトリを管理しており、その機能の 1 つにダウンロード ページがあります。というわけで、ダウンロードの1つとして追加jquery.plugin.jsします。

現在、プラグインの縮小版を利用できるようにしたいと考えていますが、ベスト プラクティスが何であるかがわかりません。ダウンロード ページで として入手できるはずですがjquery.plugin.min.js、縮小されていないバージョンを反映するように更新するたびに、バージョン管理も行う必要がありますか?

縮小版をバージョン管理する際に目にする最も明白な問題は、縮小版に変更を加えるたびにバージョンを更新するのを忘れる可能性があることです。

では、縮小されたファイルをバージョン管理する必要がありますか?

4

3 に答える 3

9

いいえ、生成された最小化されたバージョンをソース管理下に置く必要はありません。

生成されたファイルをソース管理 (TFS) に追加するときに問題が発生しました。これは、TFS がローカル ファイルを読み取り専用に設定する方法が原因です。ビルド プロセスの一部としてファイルを生成するツールでは、書き込みアクセスの問題が発生します (これは、おそらく他のバージョン管理システムでは問題になりません)。

しかし、重要なことは、次のすべてです。

  • ツール
  • スクリプト
  • ソースコード
  • 資力
  • サードパーティ ライブラリ

また、製品のビルド、テスト、デプロイに必要なものはすべて、バージョン管理下にある必要があります。

ソース管理から特定のバージョンを (タグまたはリビジョン番号または同等の方法で) チェックアウトし、その時点とまったく同じようにソフトウェアを再作成できるはずです。「新鮮な」マシンでも。

ビルドは、ソース管理下にないものに依存するべきではありません。

スクリプト: Ant、make、MSBuild コマンド ファイルなど、使用しているすべてのビルド スクリプトと、ビルド マシンだけでなく、バ​​ージョン管理下にある必要がある展開スクリプト。

ツール: これは、コンパイラ、最小化ツール、テスト フレームワーク (ビルド、テスト、デプロイ スクリプトが機能するために必要なすべてのもの) がソース管理下にある必要があることを意味します。特定の時点まで再作成するには、これらのツールの正確なバージョンが必要です。

Continuous Delivery」という本は、私にこの教訓を教えてくれました - 私はそれを強くお勧めします。

私はこれが素晴らしいアイデアだと信じており、可能な限りそれに固執していますが、100% 確実ではない領域がいくつかあります。たとえば、オペレーティング システム、Java JDK、および継続的インテグレーション ツール (Jenkins を使用しています)。

継続的インテグレーションを実践していますか? 上記のすべてが制御されていることをテストする良い方法です。ソフトウェアをビルドする前に継続的インテグレーション マシンに手動でインストールする必要がある場合は、おそらく何か問題があります。

于 2012-06-01T20:12:01.080 に答える
5

私の簡単な経験則:

これはビルド プロセス中に自動的に生成できますか?

  1. はいの場合、それはリソースであり、ソース ファイルではありません。チェックインしないでください。
  2. いいえの場合、それはソース ファイルです。チェックインしてください。
于 2012-06-01T20:16:53.597 に答える
3

以下は、私が自分で使用している Repositories™ の賢明なルールです。

  1. BLOB をビルド、使用、またはソース ツリー内からテストするためにソース パッケージの一部として配布する必要がある場合は、バージョン管理下に置く必要があります。
  2. バージョン管理されたソースからアセットをオンデマンドで再生成できる場合は、代わりに再生成してください。(GNU) 作成、(Ruby) レーキ、または単に偽造できる場合は、リポジトリにコミットしないでください。
  3. バージョン管理されたシンボリック リンク、メンテナンス スクリプト、サブモジュール、外部定義などを使用して違いを分割できますが、結果は一般的に満足のいくものではなく、エラーが発生しやすくなります。必要な場合は使用し、可能な場合は避けてください。

これは間違いなくあなたのマイレージが異なる状況ですが、3つの賢明なルールは私にとってうまく機能します.

于 2012-06-01T18:13:38.330 に答える