回答:
(この回答は、SVN 1.8および1.9の動作と一致するように更新されました)
2つの質問があります。
「無視されたファイル」とは、「バージョン管理外」としてもファイルがリストに表示されないことを意味します。SVNクライアントは、ファイルがファイルシステムにまったく存在しないふりをします。
無視されるファイルは「ファイルパターン」で指定されます。:ファイルパターンの構文と形式はSVNのオンラインドキュメントで説明されてhttp://svnbook.red-bean.com/nightly/en/svn.advanced.props.special.ignore.html「Subversionではファイルパターン」。
Subversionは、バージョン1.8(2013年6月)以降、ファイルパターンを指定する3つの異なる方法をサポートしています。ここに例のある要約があります:
global-ignores
オプション:global-ignores
リストは他のユーザーと共有されず、コンピューターにチェックアウトするすべてのリポジトリに適用されます。C:\Users\{you}\AppData\Roaming\Subversion\config
Software\Tigris.org\Subversion\Config\Miscellany\global-ignores
の両方でHKLM
とHKCU
。~/.subversion/config
svn:ignore
(ファイルではなく)ディレクトリに設定されるプロパティ:.gitignore
。svn:ignore
ディレクトリに適用され、非再帰的または継承されます。ファイルパターンと一致する親ディレクトリのすべてのファイルまたは直接のサブディレクトリは除外されます。SVN 1.8は「継承されたプロパティ」の概念を追加しますが、svn:ignore
プロパティ自体は非直系の子孫ディレクトリでは無視されます。
cd ~/myRepoRoot # Open an existing repo.
echo "foo" > "ignoreThis.txt" # Create a file called "ignoreThis.txt".
svn status # Check to see if the file is ignored or not.
> ? ./ignoreThis.txt
> 1 unversioned file # ...it is NOT currently ignored.
svn propset svn:ignore "ignoreThis.txt" . # Apply the svn:ignore property to the "myRepoRoot" directory.
svn status
> 0 unversioned files # ...but now the file is ignored!
cd subdirectory # now open a subdirectory.
echo "foo" > "ignoreThis.txt" # create another file named "ignoreThis.txt".
svn status
> ? ./subdirectory/ignoreThis.txt # ...and is is NOT ignored!
> 1 unversioned file
(したがって、./subdirectory/ignoreThis
「ignoreThis.txt
」が.
リポジトリのルートに適用されていても、ファイルは無視されません)。
したがって、無視リストを再帰的に適用するには、を使用する必要がありますsvn propset svn:ignore <filePattern> . --recursive
。
<filePattern>
子ディレクトリで値が異なる場合、子の値は親を完全に上書きするため、「相加」効果はありません。<filePattern>
、ルート.
でを変更--recursive
する場合は、子ディレクトリと子孫ディレクトリで上書きするように変更する必要があります。コマンドライン構文は直感に反していることに注意してください。
svn ignore pathToFileToIgnore.txt
が、これはSVNの無視機能がどのように機能するかではありません。svn:global-ignores
プロパティ。SVN 1.8が必要(2013年6月):svn:ignore
、SVN 1.8の「継承されたプロパティ」機能を利用することを除いて、に似ています。svn:ignore
と、ファイルパターンはすべての子孫ディレクトリ(直接の子だけではない)に自動的に適用されます。
svn:global-ignores
、--recursive
フラグを設定する必要はありません。前の例と同じコマンドセットを実行しますが、svn:global-ignores
代わりに次を使用します。
cd ~/myRepoRoot # Open an existing repo
echo "foo" > "ignoreThis.txt" # Create a file called "ignoreThis.txt"
svn status # Check to see if the file is ignored or not
> ? ./ignoreThis.txt
> 1 unversioned file # ...it is NOT currently ignored
svn propset svn:global-ignores "ignoreThis.txt" .
svn status
> 0 unversioned files # ...but now the file is ignored!
cd subdirectory # now open a subdirectory
echo "foo" > "ignoreThis.txt" # create another file named "ignoreThis.txt"
svn status
> 0 unversioned files # the file is ignored here too!
TortoiseSVNの用語(Windowsエクスプローラーメニューシステムで使用されている)は当初、私に誤解を与えていたため、この全体の配置は混乱を招きました。オプション。この記事で、無視機能がSVNプロパティ機能とどのように関連しているかについて説明したいと思います。とはいえ、コマンドラインを使用して無視されたファイルを設定し、GUIを使用する代わりにその動作を理解し、コマンドラインに慣れた後にGUIを使用してプロパティを操作することをお勧めします。
このコマンドsvn status
は、無視されたファイル(つまり、RGA global-ignores
パターンに一致するファイル、直接の親ディレクトリのsvn:ignore
パターンに一致するファイル、またはすべての祖先ディレクトリのsvn:global-ignores
パターンに一致するファイル)を非表示にします。
--no-ignore
オプションを使用して、リストされているファイルを確認します。無視されたファイルのステータスはI
であり、出力をパイプgrep
して「I」で始まる行のみを表示します。
コマンドは次のとおりです。
svn status --no-ignore | grep "^I"
例えば:
svn status
> ? foo # An unversioned file
> M modifiedFile.txt # A versioned file that has been modified
svn status --no-ignore
> ? foo # An unversioned file
> I ignoreThis.txt # A file matching an svn:ignore pattern
> M modifiedFile.txt # A versioned file that has been modified
svn status --no-ignore | grep "^I"
> I ignoreThis.txt # A file matching an svn:ignore pattern
たーだ!
svn propedit svn:ignore .
を実行していて、テキストエディターが構成されていない場合、svn:E205007:環境変数SVN_EDITOR、VISUAL、EDITORのいずれも設定されておらず、「editor-cmd」ランタイム構成オプションが設定されていませんでした。エディタを開く代わりに見つかりました。したがって、-editor-cmd nanoを次のように指定するだけですsvn propedit svn:ignore . --editor-cmd nano
svn status | grep '^?'
次のコマンドを使用して、バージョン管理ファイルの下にないリストを作成します。
svn status | grep "^\?" | awk "{print \$2}" > ignoring.txt
次に、ファイルを編集して、実際に無視するファイルだけを残します。次に、これを使用して、ファイルにリストされているファイルを無視します。
svn propset svn:ignore -F ignoring.txt .
行末のドットに注意してください。プロパティが現在のディレクトリに設定されていることをSVNに伝えます。
ファイルを削除します。
rm ignoring.txt
最後にコミット、
svn ci --message "ignoring some files"
次に、無視されるファイルを次の方法で確認できます。
svn proplist -v
svn status | awk "/^?/ {print \$2}" > ignoring.txt
。
svn pg svn:ignore . >> ignore.txt
します。現在の無視をファイルに追加する最初のコマンドの後に試してください。
.gitignoreのようなファイルまたはディレクトリは無視できます。無視するディレクトリ/ファイルのリストのテキストファイルを作成し、以下のコードを実行するだけです。
svn propset svn:ignore -F ignorelist.txt .
または、テキストファイルを使用したくない場合は、次のように実行できます。
svn propset svn:ignore "first
second
third" .
svn:ignore
コマンドを再実行する必要があることに注意してください(stackoverflow.com/a/58380306/189518を参照)
TortoiseSVNを使用している場合は、ファイルを右クリックし、[ TortoiseSVN /追加して無視リスト ]を選択します。これにより、ファイル/ワイルドカードがsvn:ignore
プロパティに追加されます。
svn:ignore
ファイルをチェックインするときにチェックされ、一致するファイルは無視されます。Visual Studio .NETプロジェクトの次の無視リストがあります。
bin obj
*.exe
*.dll
_ReSharper
*.pdb
*.suo
このリストはTortoiseSVN /プロパティのコンテキストメニューにあります。
誰もそれについて言及していないようです...
svn propedit svn:ignore .
次に、ファイルの内容を編集して無視するパターンを指定し、エディターを終了すれば完了です。
記事.svnignore Example for Javaを見つけました 。
例:Ruby on Railsの.svnignore、
/log
/public/*.JPEG
/public/*.jpeg
/public/*.png
/public/*.gif
*.*~
それとその後:
svn propset svn:ignore -F .svnignore .
.gitignoreの例。.svnignoreに使用できます
propeditを使用する場合は、ファイルが無視リストから除外される原因となるため、末尾にスペースがないことを確認してください。
Linuxでtab-autocompleteを使用して、最初にファイルを作成した場合、これらは自動的に挿入されます。
svn propset svn:ignore 'file1
file2' .
別の解決策は:
svn st | awk '/^?/{print $2}' > svnignore.txt && svn propget svn:ignore >> svnignore.txt && svn propset svn:ignore -F svnignore.txt . && rm svnignore.txt
または行ごと
svn st | awk '/^?/{print $2}' > svnignore.txt
svn propget svn:ignore >> svnignore.txt
svn propset svn:ignore -F svnignore.txt .
rm svnignore.txt
それがすること:
config
ファイルについて言及している唯一のものです。
bkbillyの答えのより読みやすいバージョン:
svn st | awk '/^?/{print $2}' > svnignore.txt
svn propget svn:ignore >> svnignore.txt
svn propset svn:ignore -F svnignore.txt .
rm svnignore.txt
それがすること:
ディレクトリをsubversionに追加し、ディレクトリの内容を無視する
svn propset svn:ignore '\*.*' .
または
svn propset svn:ignore '*' .
作業コピーでsvn statusコマンドを使用して、ファイルのステータスを表示します。バージョン管理されていない(無視されていない)ファイルの横には疑問符が付きます。
ファイルを無視する場合は、svn:ignoreプロパティを編集する必要があります。http: //svnbook.red-bean.com/en/1.5/svn.advanced.props.special.ignoreにあるsvnbookの「バージョン管理されていないアイテムを無視する」の章を参照してください。 html。この本は、svn statusの使い方についても詳しく説明しています。
ignore
TortoiseSVNでSVN を管理するのは簡単です。TortoiseSVNを開いてファイルメニューを右クリックし、[追加]を選択してリストを無視します。
これにより、svn:ignore
プロパティにファイルが追加されます。ファイルをチェックインすると、それに一致するファイルはsvn:ignore
無視され、コミットされません。
Visual Studioプロジェクトでは、無視する次のファイルを追加しました。
bin obj
*.exe
*.dll
*.pdb
*.suo
このメソッドを使用してComparetrapの SVNでソースコードを正常に管理しています
私のために働いたもの:
Subversionでファイルを無視するにはどうすればよいですか?
1.ファイルエクスプローラーで、SVNプロジェクトのフォルダー名を右クリックします
2. [ SVNコミット...
]をクリックします3. [
コミット]ウィンドウが表示されます
4.無視するフォルダー/ファイルを右クリックします
5.
[ リストを無視して追加]をクリックします6.フォルダ/ファイルを
選択します7.「プロパティの変更」をSVNにコミットします
また、バージョン管理されていないファイルを見つけるにはどうすればよいですか?
上記のステップ3の後、「バージョン管理外のファイルを表示」をクリックします