答えて

0

解決策の1つは、IntelliJプロジェクトをソース管理に入れないことです。これは、再作成が容易であることを意味します。

無視する必要があるファイルについてSubversionに伝えることができます。そのリストにIntelliJファイルを追加します。

"...プロジェクトで何の作業も行われていなくても..." - これは、プロジェクトで有用な作業をせずにIntelliJを頻繁に開くことを示唆しています。多分それが本当の問題です。チェックインする価値のあるものをやらなければIDEを開けない理由がわかりません。そして、リビジョン番号の上昇には何がありますか?私の意見では、小さい。

今、私は自分の考えを変えました。 IntelliJプロジェクトファイルをチェックインし、リビジョン番号の上昇について心配しないでください。彼らはあなたに多くの費用がかかりません。

+0

しかし、彼らはプロジェクトの構造を保持しています! 自動ビルドプロセスでそれらを使用します(少なくともIPR)。また、ある開発者がモジュールを変更したときに、他の開発者が変更を取得するようにします。これは、推奨されるベストプラクティスである.slnファイルを.NETのソースコントロールに保持するようなものです。 – ripper234

+0

それほど再現するのは難しくありません。 – duffymo

+0

ソース管理に入れないと、すべての開発者が自分のバージョンを維持し、他の開発者の変更と同期する必要はありませんか? – ripper234

4

変更されている正確に何を知ることがなければ、これは自信を持って答えることは少し難しいですが、私が言う:

  • IWSファイルは、(開発者のIDEはこのプロジェクトのためにが配置されている方法を説明する情報が含まれているが最近の変更履歴、各エディタウィンドウの現在の状態、ドッキング可能なウィンドウが表示され、折りたたまれている状態など)それぞれの開発者が好きなだけ自分のワークスペースを手配できるようにするには、がソース管理になるべきではありません。

  • IPRファイルがプロジェクトコードの構造を説明 - このなどこれで私が使用するファイルをbuild.xmlのモジュールは、プロジェクトの一部であるようなものを、意味、あなたのコードをコンパイルするためにライブラリを検索しますがソースコントロールに含まれていますが、これらの設定をプロジェクトのある開発者のコ​​ピーから次のものに変えることができれば、あなたは大まかに乗ることになります。

あなたのIPRファイル内libraryTableコンポーネントがある場合:何が起こっているかをほぼ確実に

を各開発者は、共有ライブラリ(JARファイル)を維持していることである - 彼らのコードをビルドするために必要な - 彼らの地元で別の場所にあるマシン。変更をコミットすると、ライブラリの場所がIPRファイルに書き込まれます。これを行う場合は、私がプロジェクトを更新したときに、知的財産権とあなたのコピーがこれらのJARの場所に矛盾します。

共有された場所(マップされたネットワークドライブなど)にJARファイルを配置し、すべての開発者がこれらのファイルを同じ場所にダウンロードするようにします(プロジェクトルートのlibサブフォルダはうまく機能します)。欠点は、プロジェクト間で同じJARの複数のコピーがあることです(それぞれのプロジェクトは独自のlibフォルダを参照します)。しかし、すべての開発者が同じプロジェクト構造を使用しているため、IPRの更新はもっとうまくいくはずです。

そうでない場合:

は、(お好みの差分ツールを使っそう、あなたが更新するとき、あなたは手動でファイルまたはビューの違いをマージするオプションが与えられるべきである)のIntelliJをマージしようとしているものを見るために見てください。マージの競合がどのようなものかを少し詳しく知りたい場合は、ホイールがどこから外れているのかを簡単に確認できます。

35

「私たちは、ソース管理に当社のIntelliJ .IPRと.IWSファイルを保持しますが、彼らもプロジェクトで行われているいずれかの作業をせずに、ちょうどそれらを開いてのIntelliJで変更得続けます。」

.IWSファイルは開発者ごとのファイルであるため、ソース管理下にあるべきではありません。

最近のプロジェクトの.IPRファイルに関しては、.NetプロジェクトとVS.Net .SLNファイルの場合と同じように、概念的にこのファイルに近づくように試みました。私たちの目標は、IDEやローカルデータベースのような依存ソフトウェアをインストールするのにかかる時間を含め、15分以内にクリーンなPCで開発者を起動させることでした。最終的には、以下のようにローカル設定を微調整するためにしばらく時間がかかりました。

.IPRファイルには、.slnファイルよりも多くの設定が保存されているという問題があります。個々のプラグインの設定です。したがって、上書きの主な原因は、異なるプラグイン設定を持つ開発者がIPRファイルを開くと、プラグインのいくつかのデフォルト設定がファイルに書き込まれることです。開発者は、プラグインのスーパーセット(最小限の設定)に限定する必要はないと感じました。

私たちが(完全には解決していないが)問題を軽減する方法は、.ideaフォルダ形式に切り替えることでした。これは.IPRファイルの内容を取り、多数のノードを.ideaサブフォルダ内の個々のファイルとフォルダに分割します。ここから、頻繁に書き込まれるファイルの多くをソース管理から除外することができました。我々は除外されたファイルのいくつかあった。

  • workspace.xml
  • はdatasources.xml
  • sqlDataSources.xml
  • dynamic.xml

我々はIntelliJのを残したいのですがいくつかのファイル(たとえ責任がJetbrainsだけでなく、プラグインの開発者にも行けますが)、

  • projectCodeStyle.xml(プロジェクトで一貫したコードフォーマットを取得できるようになりました。これは、開発者のローカルプラグインの組み合わせに基づいて上書きすることもできます)。
  • runConfigurationsフォルダの下にあるファイル。特に、多数のファセットを持つ複雑なアプリケーションを使用している場合は、実行構成を構成するのに時間がかかることがあります。最も一般的には、IDEやビルドを開くだけで変更されるばかげたことは、RunnerSettingsの下にある "DEBUG_PORT"オプションです。私の意見は、なぜそれが動的 "の値を持っていない動的に割り当てられている場合ですか?
  • misc.xml。このファイルには、プラグインの設定も含まれています。いくつかの設定は共有するのに便利なように見え、他の設定は個人設定のためにもっと見えます。例えば、IvyIDEAプラグインは、あなたのivy設定ファイルに絶対パスを設定します。
  • モジュールファイル。これらはほとんど残されていますが、不要な上書きの例はIvyIDEAプラグインで、このファイルにローカルなivyキャッシュの場所の詳細を入れています。しかし、これもまた、プラグインの欠陥であり、実際にはジェットブレーンではありません。

これが役に立ちます。

キリスト教徒。

+0

本当に素晴らしい答えです。 – Kieveli

+3

はい - すばらしい答えです! Jetbrainsフォーラムでは、workspace.xmlを除外する決定がサポートされています:http://devnet.jetbrains.net/message/5252427(.idea形式を使用する場合はtasks.xmlを除外することをお勧めします)。 –

1

ソースコントロール(.deleteme)にチェックインされた拡張子を追加します。その後、新しい人がプロジェクトをチェックアウトしたり、内線番号を変更したり、移動したりすることができます。設定を変更すると、チェックインされたファイルが更新されます。