2008-09-02 4 views
2

バージョン管理システムへのオンラインインターフェイスを使用すると、コードの最新バージョンの公開場所を持つことができます。例えば、私は(変更が実際に動作することが確認されるたびCTANに放出される)ここでLaTeXのパッケージを持っている:"派生"ファイルのバージョンはありますか?

http://github.com/wspr/pstool/tree/master

パッケージ自体が、この場合、単一のファイル(、pstool.texから導出され)、処理されると、ドキュメント、readme、インストーラファイル、LaTeXが使用するパッケージを構成する実際のファイルが生成されます。

このようなものをダウンロードしたいユーザーにとっては、上記の派生ファイルのすべてをリポジトリ自体とマスターファイルpstool.texに含めます。これは、パッケージファイルpstool.styがマスターファイルの生成されたサブセットであるため、コミットするたびに変更回数が2倍になることを意味します。

これはバージョンコントロールの倒錯ですか?

あなたの代わりにあなたのダウンロードサーバとしてお使いのバージョン管理に依存するので、ダウンロードのために他の場所に生成されたファイルを公開するための別の方法があります:Jon Limjap @


は良い点を提起しましたか?

これは本当にこの場合の問題の要点です。はい、パッケージのリリース版は他の場所から入手できます。実際には、生成されていないファイルのバージョンを作成するほうが意味があります。

もむしろ適切である舞台裏負担するコストを上回る、本当の繰り返しである

利便性、:Madirのコメントその@一方

、ユーザーがバグを見つけて即座に修正すると、リポジトリに向かい、「インストール」手順を実行することなく作業を続けるために必要なファイルを取得できます。

これは、自分の特定のプロジェクトのセットに対して、より重要な使用例です。

答えて

2

私は小さなシステムASP.NET開発にTortoise SVNを使用しています。ほとんどのコードはASPXと解釈されますが、手作業でコンパイルするステップでは約12個のバイナリDLLが生成されます。これらのソースコードは理論的にバージョン化されているとは大して意味がありませんが、開発環境から本番システムに正しくミラーリングされていることを確認するのが便利です(ワンクリック)。また、災害の場合には、前のステップへのロールバックはSVNでもう一度クリックします。

だから私は弾丸をビットし、SVNアーカイブに入れました - 実際の繰り返しの利便性は、背後で負担されるコストよりも重要です。

1

必ずしもそうではありませんが、ソースコントロールのベストプラクティスでは、明らかに、生成されたファイルを含めないことをお勧めします。

バージョンコントロールをダウンロードサーバーにする代わりに、生成されたファイルを別の場所にダウンロードして公開する別の方法はありますか?

1

通常、派生ファイルはバージョンコントロールに格納しないでください。あなたの場合、派生ファイルを含むtarballを作成したリリースプロシージャをビルドすることができます。

あなたが言うように、派生ファイルをバージョンコントロールに保存すると、対処しなければならないノイズの量が増えます。

4

リポジトリ自体に含まれるスクリプトを使用して自動的に生成されるファイルはバージョン化されません。その理由は、チェックアウト後、これらのファイルを1回のクリックまたはコマンドで再構築できるからです。私たちのプロジェクトでは、常にこれをできるだけ簡単にしようとしており、これらのファイルをバージョン管理する必要がありません。

出力を生成するために必要なツールが利用できないプロダクション環境(または非開発環境)で使用するために、製品の特定のリリースを「タグ付け」する場合に、この場所が有用な場合が考えられます。

また、リリースされたバージョンの製品でアーカイブを作成してアップロードできるビルドスクリプトでターゲットを使用しています。これは、製品のユーザーがダウンロードするために、運用サーバーまたはHTTPサーバーにアップロードできます。

0

場合によっては、sysadminタイプのユースケースです。生成されたファイル(スクリプトから作成されたDNSゾーンファイルなど)は、本質的に本質的な興味を持ち、リビジョンコントロールはブランチングおよびタグ付けのソース管理よりも線形の監査証跡を提供します。

関連する問題