TortoiseSVN1.7.9を使用しています。
どうすればignore/removecontents from /bin
フォルダープロジェクトフォルダをsvn commit
すると? .dll
、.pdb
などのファイルをコミットしたくありません。
svn:ignoreプロパティに.dll
.pdb
エントリを入れましたが、機能せず、コミットを実行するとこれらのファイルがリストに表示されます。
コマンドラインクライアントは使用していません。 Windowsエクスプローラーで、ルートプロジェクトフォルダーを右クリックし、TortoiseSVNコンテキストメニューで[コミット]をクリックします。
答えは TortoiseSVNマニュアル および SVNBook にあります。
TortoiseSVNマニュアルには次のように書かれています。
ファイルがすでにリポジトリにある場合は、それらをリポジトリから削除して、無視リストに追加する必要があります。幸い、TortoiseSVNにはこれを行うための便利なショートカットがあります。 TortoiseSVN→Unversion and add to ignore listは、最初にファイル/フォルダーをリポジトリから削除するようにマークし、ローカルコピーを保持します。また、このアイテムを無視リストに追加して、誤ってSubversionに再度追加されないようにします。これが完了したら、親フォルダーをコミットする必要があります。
SVNBookの重要な注意事項を参照してください。それはあなたの場合の振る舞いと「なぜそれが機能しないのか」を説明します。
無視できるファイルパターンに対するSubversionのサポートは、バージョン管理されていないファイルとディレクトリをバージョン管理に追加する1回限りのプロセスにのみ拡張されます。 オブジェクトがSubversionの制御下にあると、パターン無視メカニズムはそのオブジェクトに適用されなくなります。言い換えると、ファイルの名前が無視パターンに一致するという理由だけで、バージョン管理されたファイルに加えた変更のコミットをSubversionが回避することを期待しないでください。Subversionは常にバージョン管理されたすべてのオブジェクトを認識します。
すべてのプロジェクトのbin、obj、.suoファイルおよびユーザーファイルを無視します。それらを次の設定ファイルに追加するだけです。
C:\Users\[USERNAME]\AppData\Roaming\Subversion\config ( in windows )
グローバルを見つけます-部分を無視し、以下を追加します:
global-ignores = *.suo bin obj *.csproj.user
基本的な答え:コンパイルされたライブラリとバイナリをソースリポジトリに保存しないでください。それはソースリポジトリです!
Subversionの制御下にあるものを無視することはできず、ビルドされたアイテムはそもそもSubversionに保存されるべきではありません。それらを削除してから、svn:ignore
を設定して、作成時にこれらのディレクトリを無視します。そうすれば、これらのビルドされたバイナリを誤って再コミットすることはありません。
後で使用するためにバイナリとライブラリを保存する場合は、そのためのリリースリポジトリを使用します。実際、ビルドで他のプロジェクトから必要になる可能性のある.dllを自動的にダウンロードするように設定することもできます。リリースリポジトリは、これらのファイルが保存されている(そして他のプロジェクトにコピーできる)別のシステム上のディレクトリのような単純なものでも、ArtifactoryやNexus(MavenおよびIvyプロジェクトで使用されます。私はしません)のようなより複雑なものでもかまいません。 VSプロジェクトとC/C++プロジェクトにも似たようなものがあると思います)。
または、 Jenkins を使用してビルドを実行し、これらのアイテムをビルドされたアーティファクトとしてJenkinsジョブに保存できます。誰かがそれらを必要とするとき、彼らはジェンキンスを通してそれらをダウンロードすることができます。