2

私たちのグループはSVNへの移行を検討しています。しかし、私は次のことを行う方法を見つけることができないようです:

リポジトリ内の約 20 個のファイルに対してローカルで微調整を行う必要があります。SVN はそれらを「変更済み」と見なしてコミットに含めます。(通信タイムアウトやロギングレベルなどの変更)

理想的には、調整したファイルをリポジトリ内の新しいバージョンにマージしたいと思います。(微調整されたローカル ファイルを、他のユーザーからコミットされた変更で最新の状態に保ちます。)

これを望んでいる/必要としているのは私たちだけだとは思えません。

このタイプのユースケースに関するベストプラクティスはありますか?

私が考えていることの 1 つは、微調整されたすべてのファイルを分岐された「微調整された」作業コピーに入れることです。

次に、微調整したファイルを「公式」作業コピーにマージします。

次に、「微調整」作業コピーと「公式」作業コピーを比較するスクリプトを使用して、無視リストを更新します。また、このスクリプトは無視を解除し、レポジトリにコミットする必要があると思われる微調整その他の変更が加えられたファイルについて警告を発します。

これはちょっとハックなようで、もっと良い方法がないとは思えません。

4

4 に答える 4

2

リポジトリにあるが変更したくないファイルがあるときはいつでも、それらのファイルを変更することになります。使用しているバージョン管理システムは関係ありません。誰かが誤ってそれらのファイルを変更しようとしています。

役立つことがいくつかあります。

  1. 特定のファイルが誤って変更されるのを防ぐことができる pre-commit フックがありますそれらは読み取り専用であり、誰かが変更をコミットしようとすると、コミットは拒否されます。
  2. 変更リストも使用できます。変更したいファイルの変更リストを作成してから、変更リストを操作するだけです。もちろん、偶発的な変更が発生する可能性があります (ポイント #1 の pre-commit フックを参照)。
  3. 考えるべきことの1つは、働き方を変えることです。これらの微調整ファイルに置き換え可能なパラメーターがあるとしたらどうでしょう。次に、ビルド システムを使用してこれらのファイルを微調整します。私は Ant を使用build.template.propertiesして、人々がビルドを微調整できるようにするファイルをセットアップします。このファイルはチェックインされていますが、開発者はそれをコピーしてbuild.properties、必要に応じて微調整する必要があります。私はsvn:ignoreprecommit フックを使用して、誰も実際のbuild.propertiesファイルをチェックインしないようにしています。
  4. Subversion では、分岐は安価で簡単に実行できます。ファイルをブランチに置き、そこで変更を加えます。元のブランチをこのブランチに定期的にマージすることで、ブランチを最新の状態に保つことができます。バージョン 1.5 以降、Subversion には重複マージを防止する優れたマージ追跡方法があります。
于 2012-11-13T00:24:28.743 に答える
1

使用している言語によっては、値を定義する単一のファイルからこれらの微調整をロードすることはできません。また、ソース管理にコミットされ、各開発者が無視される独自の「微調整」ファイルを作成できるようにする一連のデフォルトがあります。 ?

このように、ソースのバージョンは一貫性があり安定しており、合理的な合理的なデフォルト値がありますが、開発者はローカルコピーの心のコンテンツを微調整できます。

バージョン管理の問題ではなく、「調整可能な設定をオーバーライドするための値をどのように取得するか」の問題のように聞こえます。

于 2012-11-12T21:51:47.653 に答える
0

補足:もし

リポジトリ内の約 20 個のファイルに対してローカルで微調整を行う必要があります。SVN はそれらを「変更済み」と見なしてコミットに含めます。

ワークフローでかなり一般的な要件である場合は、Subversion ではなく、fe、MQ+mqcollab 拡張機能を備えた Mercurial、または hg commit の -X オプションを使用することを検討できます。

于 2012-11-13T04:19:08.607 に答える
0

設定を含むファイルをコミットしないでください。設定用の「構成するテンプレート」であるファイルをコミットします。次に、(親しみがあれば) テンプレート ファイルをコピーする方法を説明する "readme.txt" ファイルをドロップし、それをエディターで開き、ファイルのコメントに記述されているとおりに適切な値を設定します。

インストールごとの「微調整」が必要なのはあなただけではありませんが、そもそもなぜそれらをコミットするのでしょうか。ソースコード管理は「システムのバックアップ」ではなく、ソースコード管理です。

PS。上記のように 20 個の異なるファイルを構成する必要がある場合は、構成制御の集中化を改善することを検討してください。

于 2012-11-13T04:29:13.170 に答える