build
ツリーの深さに関係なく、ディレクトリに名前を付けたりdist
、SVNに入れたりしたくありません。
これは可能ですか?gitで私はちょうど入れました
build
dist
私.gitignore
のルートで、再帰的に無視します。svnでこれを行うにはどうすればよいですか? すべての親ディレクトリで propset を実行するように言わないでください...
build
ツリーの深さに関係なく、ディレクトリに名前を付けたりdist
、SVNに入れたりしたくありません。
これは可能ですか?gitで私はちょうど入れました
build
dist
私.gitignore
のルートで、再帰的に無視します。svnでこれを行うにはどうすればよいですか? すべての親ディレクトリで propset を実行するように言わないでください...
サブバージョン 1.8 の時点で、svn:global-ignores
同様に機能するが再帰的に機能するプロパティがありますsvn:ignore
(したがって、これを最上位ディレクトリに設定します)。
svn propset
オプションとして取る--recursive
ので、これを行うことができますが、2 つの欠点があります。
svn:ignore
新しいディレクトリを追加するたびにプロパティを設定することを忘れないでくださいこれを行うことはできません。svn:ignore
Subversion には、 (非再帰的) とglobal-ignores
(リポジトリ固有ではない)の 2 つの無視メカニズムしかありません。
これは私のために働きます:
svn propset --recursive svn:ignore *.zip <dir_tree_with_no_zips>
~/.subversion/config または /etc/subversion/config ファイルに追加します。
[miscellany]
global-ignores = build dist
バージョン管理からディレクトリを削除することにより、buildおよびdistdirを無視することができます。秘訣は、-keep-localオプションを使用して、ディレクトリを作業コピーに残すことです。例えば:
svn rm dist --keep-local
svn ci -m'removed build directory from version control'
ディレクトリはSubversionによって追跡されなくなりますが、コンパイラの出力などを保持するために作業コピーに残ります。
乾杯、ジョー
たとえば、フォルダー構造は次のとおりです。
Project/
Project/dist/
cd Project
svn propset svn:ignore '*' dist/
svn ci -m "content of dist ignored"
ignore コマンドの前に dist コンテンツの svn delete を実行するとよいため、ブランチの場合、dist は空になります。
私のために働いて、今日テストしました。 ここにそれを少し説明するページがあります
すべてのリポジトリでそのようなファイルをすべて無視するには、global-ignores
ユーザーごとの構成ファイルに を追加できます。
Unix ライクなシステムでは、この領域はユーザーのホーム ディレクトリにある .subversion という名前のディレクトリとして表示されます。Win32 システムでは、Subversion は Subversion という名前のフォルダーを作成します。これは通常、ユーザーのプロファイル ディレクトリのアプリケーション データ領域内にあります。
構成オプションを参照してください
残念ながら、これを行うリポジトリごとのオプションはありません。これは基本的にユーザーごと、またはディレクトリごとであるため、svn:ignores
できる限り面倒な場合は、おそらく複数の方法が適しています。
Subversion 1.8 以降では、現在のリポジトリに対して global-ignores を設定できます。
svn propset svn:global-ignores build .
svn propset svn:global-ignores dist .
また、.svnignore という名前のフォルダーを作成し、条件を書き込むこともできます。
build
dist
build/* または dist/debug を設定しても無駄です。次に、次のコマンドを実行します。
svn propset svn:global-ignores -F .svnignore .
最初に作業コピーの最上位フォルダーに移動し、そこにファイル (.svnignore など) を作成する必要があります。たとえば、(Android プロジェクトの場合) 無視するすべてのパターンを配置する必要があります。
bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex
次に、次のコマンドを実行します (作業コピーの最上位フォルダーにいる必要があることに注意してください)。
svn propset svn:ignore -R -F .svnignore .
これは、まだバージョン管理されていないフォルダーとファイルに対してのみ機能します。バージョン管理されているフォルダー (またはファイル) も無視されるようにする場合は、次のコマンドを実行してバージョン管理から削除します。
svn rm --keep-local <path>
すべてを説明するこの素晴らしい記事からこれらすべてを入手しました:http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/
ファイルを作成し、それに無視を追加します
無視リスト:
file1
directory1
file2
etc...
次に、次のコマンドを適用します
for n in directory; do svn propset svn:ignore -F ignore-list $n; done
ディレクトリはディレクトリの名前です。ディレクトリ/サブディレクトリと同様にサブカテゴリに分類できます。または * を使用して、現在のディレクトリをメモします。
これは、シェルとして bash を使用していることを前提としています
svn propset --recursive svn:ignore svn_ignore_rules .
ここで、svn_ignore_rules は無視ルールを含むファイルです -- 1 行に 1 つずつ
もちろん、リポジトリに新しいディレクトリを追加するたびに再実行する必要があります
svn_ignore_rules はレポにチェックインされていると見なすこともでき、レポへの書き込みアクセス権を持つ他のユーザーが再利用できるようになります
cd parent_dir #再帰的に無視されるフォルダを含むディレクトリ svn propedit svn:ignore . #svn-prop.tmp を開きます フォルダを登録する ^X よ commit -m 'ターゲット ディレクトリを無視'
1 つの方法は、コミット前またはコミット後のフックにある種のチェックを追加することですが、レポ サーバーを所有していない場合は簡単です。
このおそらく一般的な問題には解決策がないように思われるため、私たちの解決策を共有したいと思います。他の人がすでに明らかにしているように、プロパティを使用するかsvn:ignore
、これを単一のディレクトリに適用するか (したがって、新しいディレクトリには適用しません)、global-ignores
単一のユーザーに適用するか (ただし、リポジトリには属しません) を使用できます。
生活を少し楽にするために、という名前のregファイルを作成しSettings.Svn.reg
、リポジトリのルートに追加しました。これで、誰もがこの regfile を 1 回ダブルクリックして、設定を完了できます。
REGEDIT4
[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"global-ignores"="obj *.suo *.bak *.pdb *.user *.Cache*"
SVNリポジトリ内のソリューションを本当に感謝していますので、誰かが知っていれば、それを共有していただけますか?