3

.subversion/config に移動して .settings を追加しましたが、.subversion から、svn diffそれが機能していないことがわかります。

~/Space/ifp-integration/CIGNA-IFP-ESB$ svn diff
Index: .settings/org.eclipse.jdt.core.prefs
===================================================================
--- .settings/org.eclipse.jdt.core.prefs    (revision 2014)
+++ .settings/org.eclipse.jdt.core.prefs    (working copy)
@@ -1,6 +1,15 @@

これは、誰かがチェックインしたに違いないことを示していますが、どちらにしても無視したいので気にしません。これを確実に無視する方法はありますか?

4

1 に答える 1

8

リポジトリにあるものを無視することはできません。それは、Subversion で無視がどのように機能するかではありません。

無視は、リポジトリに誤っ てファイルを追加することを防ぐための単純な方法です。ファイルがリポジトリに既に存在する場合、それを無視することはできません。

グローバル無視はファイルにのみ適用され、ディレクトリには適用されません。.settingsSubversion 設定ファイルで無視すると、 というディレクトリは無視されず.settings、 というファイルだけが無視されます.settings。また、.settingsファイルがまだリポジトリにない場合にのみ無視されます。

svn add *基本的に、またはと言った場合svn status、リポジトリになく、グローバル無視パターンに一致するファイルは追加されませんsvn status。それだけです。

svn:ignore同様の名前のディレクトリにプロパティを作成できます。ただし、svn:ignoreディレクトリも無視します。たとえば、Maven プロジェクトがある場合、svn:ignore=を設定targetすると、ターゲット フォルダーはレポートされません。ただし、svn:ignoreサブディレクトリではなく、プロパティがオンになっているディレクトリに対してのみ機能します。

.settingsでは、どのようにディレクトリを無視できますか? シンプル:あなたはそれをチェックアウトしません。残念ながら、Subversion でこれを行う簡単な方法はありません。できることは次のとおりです。

$ svn checkout --depth=immediates http://server/src/myproj

これにより、作業ディレクトリ内のすべてのフォルダーとファイルがチェックアウトされますが、サブディレクトリはチェックアウトされません。Kornshell と BASH ( を設定した場合shopt -s extglob):

$ svn update --set-depth=infinity !(.settings)

これにより、ディレクトリを除くすべてのディレクトリでチェックアウトが続行されます.settings

これを行うこともできます:

$ svn update --set-depth=exclude .settings

.settingsすでにチェックアウトされているディレクトリを削除します。これは.settingsリポジトリからディレクトリを削除しませんが.settings、作業ディレクトリからディレクトリを削除svn diffし、作業ディレクトリ (リポジトリ URL ではありません) では.settingsディレクトリ内の何も報告しません。

強調しなければならない重要な点が 1 つあります。無視するのは、ファイルが誤ってリポジトリに追加されるのを防ぐだけです。誰かがそれを追加することを妨げるものではなく、いったんそこにあると、無視されることはありません.

また、グローバルな無視設定は、すべての人にグローバルではありません。あなただけに。リポジトリに追加してはならないファイルを他のユーザーが追加するのを防ぎたい場合は、このような pre-commit フックが必要です。

このフックは、特定の名前のファイルまたはディレクトリがコミットされないようにするために使用できます。また、ファイルおよびディレクトリのプロパティが設定されていることを確認するためにも使用できます。たとえば、他の.settingsユーザーがプロジェクトのディレクトリに追加できないようにする必要がある場合があります。またはsvn:ignore、ディレクトリのプロパティがディレクトリを無視するように設定されてい.settingsます。

于 2012-04-19T20:35:26.370 に答える