0

私がやろうとしていることは、SVN:ignoreコマンドが私がやりたいことをやろうとは思わない。

少数の個別のクライアントにデプロイされた同じアプリケーションであるSVNリポジトリがあります。ファイルのグループに変更を加えましたが、これらの変更を必要としているのは1つのクライアント(クライアントAと呼びます)のみです(他のクライアントはアクセスできないのに対し、iframeでWebアプリにアクセスできるようにしたい)。

他のサーバー上のファイルを無視したくないのは、将来、それらのファイルに必要な変更を加える予定だからです。

基本的に、クライアントA以外のすべての人にとって、サーバーを更新する必要がありますが、クライアントA専用のリビジョンxの変更は更新しません。

将来的にはそれらのファイルを上書きするのは非常に簡単になるので、これが可能かどうかさえわかりませんね。私は永遠にその改訂を無視することを忘れないでいませんか?

それが不可能な場合、人々が使用した他の回避策はありますか?私が考えたが理論的には思ったように機能しないように見える1つの方法は、クライアントAのサーバーの変更を別のブランチにマージすることですが、クライアントが必要とするたびに別のリポジトリブランチを維持する必要があります他のクライアントと何か違う?

4

3 に答える 3

2

ここで少し逆説的に言うと、開発ライン間でコードをマージする時間が無限にある場合を除き、ブランチやタグが問題の正しい解決策になるとは思いません。

別のアプローチは、機能のスーパーセットをすべてのクライアントに適応させるモノリシック コード ベースです。クライアントごとに、機能のオンとオフを構成します。(各クライアントの構成はコードベースとは別のものですよね?) コードがクライアントごとに異なるパスをたどる場合でも、共通の機能を一度修正できるという利点があります。

さらに、クライアントごとにさまざまな機能を開発すると、既に構築されている可能性のある機能をクライアントに販売する機会があります。あなたがする必要があるのは、それを設定することだけです.

確かに、各クライアントのニーズが大きく異なる場合、このソリューションは機能しない可能性があります。ただし、コードベースを同じリポジトリに保持しているため、そうであると想定します。

于 2012-07-19T01:27:23.627 に答える
1

別のブランチが最も合理的な解決策だと思います。少なくともこの場合、クライアント A とその他の両方のブランチからテストを実行するようにテスト システムをセットアップできます。サブバージョンのブランチ/トランクに変更を保存するか、簡単に紛失/忘れてしまう可能性があります。理論的には、リビジョン X からの変更が存在することを前提とするリビジョン Y > X の変更を適用する際に競合が発生する可能性があるため、リビジョン X を完全に自動的に除外することはできません。

于 2012-07-19T01:17:04.920 に答える
0

ここで使用する正しい方法は、クライアント A のブランチを作成することです。SVN 無視は、まったく別のものです。

于 2012-07-19T01:08:39.400 に答える