私はSubversionを初めて使用するわけではありませんが、今までTortoiseを使用していて、commadn行は使用していません。私の質問は、ルートだけでなく、ソース全体から* .oのようなすべてのファイルをどのように無視するかです。
たとえば、次のファイルがあるとします。/myfile.o /folder1/myfile2.o /folder1/folder1.1/myfile3.o /folder2/myfile4.o
Svn propeditの場合svn:ignore "。"ルートディレクトリに* .oを追加すると、myfile.oは無視されますが、/ folder1/myfile2.o、/ folder1/folder1.1/myfile3.o、/ folder2/myfile4.oは無視されません。 * .oをプロジェクト全体に追加する方法はありますか(このプロジェクトは他の多くのプロジェクトのリポジトリにあるため、リポジトリ全体では実行できません。これは可能です)。
明確にする必要がある場合はお知らせください。ありがとう!
編集する
以下に提供された元の回答は、ルートディレクトリおよびすべての単一のsvn:global-ignores
プロパティを上書き/置換せずにデフォルトのリポジトリレベル無視(svn:ignore
と呼ばれる)を設定する方法を導入したSubversion v1.8より前に与えられましたサブディレクトリ。 1.8以降、目的を達成するための最良の方法は、次のコマンドを呼び出すことです(クレジットはTManhenteに送られます)。
svn propset svn:global-ignores '*.o' .
以前のバージョン(およびそれ以降のバージョン)では、以下の元の回答に示されているアプローチを引き続き使用できます。ただし、これは、すべてのサブディレクトリのsvn:ignore
プロパティを置換/上書きしても問題がないことを前提としていることに注意してください...これは、小さめ/新しい風のリポジトリでは問題ないかもしれませんが、一部のサブディレクトリに、上書きしたくない独立したsvn:ignore
プロパティが含まれている可能性がある大規模/古いリポジトリ。
元の答え
次のコマンドのように、「svn propset」で「-R」または「--recursive」オプションを使用できます。
svn propset svn:ignore '* .o'。 --recursive
より詳しい情報
どちらの場合も、次のコマンドを使用してsvn propsetの詳細を確認できます。
svn help propset
ただの更新:Subversion 1.8.0が導入されました継承されたプロパティおよびリポジトリのディクテーションされた構成(auto-propsと無視の場合) 、これもこの場合に使用できます。
ルートパスに新しいsvn:global-ignores
プロパティを設定できます。 「プロパティが設定されているパスをルートとするサブツリーにのみ影響します」。
この新しいプロパティは、svn:ignore
のように設定されます。
svn propset svn:global-ignores '*.o' .
詳細は Subversion 1.8.0リリースノート を参照してください。
コメントの@ hackmaster.aで指摘されているように、受け入れられた回答で示されている例には、以前のすべてのsvn:ignore
設定を消去するという副作用があります。 propedit
の代わりにpropset
を使用しても機能しません。
複数のファイルを再帰的に追加する正しい方法は、svn:ignore
で設定されたsvn propset svn:ignore "[LIST]" .
プロパティの改行で区切られたリストにファイル名を入れることです。
例えば:
svn propset svn:ignore -R "*.pkl
> *.class
> Thumbs.db
> data.tmp" .
もちろん、>
は単なるシェルプロンプトです。
このコマンドは、svn:ignore
の現在のディレクトリとその各サブフォルダーの.
プロパティを再帰的に変更します。