2012-06-20 33 views
13

私のアプリケーションが一時ファイルを置くジャンクフォルダがあります。私はそれらを(確かに)コミットしたくありませんが、フォルダーが存在しなければならない、またはアプリケーションがクラッシュするはずです。SVN:無視しますが、フォルダを削除しない

標準のTortoiseSVN無視機能を使用すると、 "svn:ignore junk_folder"プロパティが親フォルダに追加されますが、発生しない "junk_folder"も削除されます。

削除操作(TortoiseSVNによる操作)のみを元に戻し、「svn:ignore」プロパティの追加を残しておけば、このソリューションは失敗します。 TortoiseSVNは "junk_folder"内のファイルをバージョン管理されていないと報告しますが、これは避けたいものです。

SVN内の特定のフォルダを完全に無視できるようにするソリューションはありますか(削除することなく、バージョン管理されていないと報告されることはありません)それ?

編集私は既にバージョン管理されたフォルダについて話しています。あなたが無視するか(TortoiseSVNのsvn:ignoreまたは適切なオプション)、まだバージョン化されていない(最初のコミットの前に)フォルダがあれば、すべてがOKです。しかし、すでにリポジトリにあったフォルダでこれを行うと、TortoiseSVNはそれを削除済みとしてマークし、次のコミット時に両方のリポジトリから削除します(ローカル作業コピーからは削除しません)。

+0

は、あなたは、単にフォルダとなしを追加できませんでした – Wug

+0

@Wug - 彼のアプリケーションはそこにファイルを作成するので、SVNがそのディレクトリにバージョン管理されていないファイルがあることを常に言いたくはないと思うよ。 – CodingWithSpike

+0

まったく。私はドン。このフォルダ内の内容や変更に関するレポートは、特にそのジャンクフォルダ内に何千ものファイルやフォルダがあり、そのコミットダイアログにそのようなエントリがオーバーロードされるためです。 – trejder

答えて

12

"junk_folder"自体ではなく(つまり "junk_folder/*"を無視して)、そのフォルダ内の "*"にsvn:ignoreを追加することができます。

TortoiseSVNはそのためのボタンがある場合、私は知らないが、コマンドラインからコマンドでそれを行うことができます。

のsvn propset SVNの:無視 "*" junk_folder

(少なくとも私は頭の上から正しい構文であると思っています。もし誰かが間違っていると思われるなら、私を修正してください)

+0

このメソッドにはまだ空の "junk_folder"がSVNにチェックインされているので、クリーンチェックアウトを実行すると空の "junk_folder"が表示されますが、SVNは作成されたバージョン管理されていないファイル後でそのフォルダに保存されます。私はそれがあなたが求めていたものだと思っています... – CodingWithSpike

+0

そしてそれは私が必要とするものです! :]私は "junk_folder"(空)チェックアウト時に新しいフォルダにチェックアウトする必要があります。そして、私はそれの中にある何かが無視されることが必要です。あなたのソリューションは完璧です! – trejder

2

私はコンパイラの中間出力フォルダのようなものにこれを使用します。これは何も削除していません。

これを再テストするには、のバージョンがありません。というディレクトリが私の作業コピーの1つにあります。私はそのディレクトリを右クリックし、 "Add to ignore list"オプションに移動しました。それはディレクトリ名に展開されました。私はディレクトリ名を選択し、無視リストに追加されたことを知らせるポップアップメッセージを受け取りました。作業コピーの状態を確認すると、親フォルダにはプロパティのみが変更されていました。削除の対象としてマークされたファイルはありません。サイドノートとして

Ignoring Files And Directories

enter image description here

「変更をチェック」し、ダイアログの下部にあるチェックボックスをコミットダイアログを使用しているとき、あなたはまた、バージョン管理外のファイルを非表示にすることができます。

+1

あなたが書いたことはとても奇妙です!このオプションを使用すると、すぐに削除されたフォルダがマークされ、実際に次のコミット時に削除されます。アプリケーションをクラッシュさせます。これは何百回もテストされているので、あなたはこのオプションをファイル(ファイルではない)に使用し、次のコミット時にこのフォルダを削除しないと信じることはできません。 – trejder

+0

のスクリーンショットでは、crashmstrはフォルダ内のファイル(この場合はCopy.bakという名前)内で右クリックされていました。 – CodingWithSpike

+0

画面はTorsoiseSVNのドキュメントにあります。例の画面はファイルですが、ディレクトリに対して同じことができます。ファイル名/拡張子オプションの代わりにフォルダ名が表示されます。 – crashmstr

1

""私は標準のTortoiseSVN無視機能を使用すると、を追加210プロパティを親フォルダに追加しますが、junk_folder ... "も削除されますか?

あなたが無視するように要求したフォルダは削除されません。実際には、それはsvn:ignoreの全目的です:Subversionがそれを泣かさないでリポジトリにないフォルダを持つことを可能にする。

junk_folderさんはどのようにして作成されていますか?あなたが使っているスクリプトか、それとも手動で行うのですか?正確にいつ削除されますか?新しいチェックアウトを行うときにjunk_folderが存在しないか、svn:ignoreプロパティを親ディレクトリに追加するとすぐにTortoiseSVNが削除されることを意味しますか?

あなたのリポジトリに永続的にそのフォルダを必要とするが、それは空のままにしなければならない場合は、リポジトリにjunk_folderを追加し、*に設定されていますsvn:ignoreプロパティを作成することができます。フォルダ内のものは無視されます。

私が提案するのは、junk_folderが存在しない場合はそれを作成し、それをリポジトリに追加しないようにするスクリプトを作成することです。 this pre-commit hookを使用してリポジトリからそれを保持することができます。それがこれを処理する最善の方法でしょう。 junk_folderという名前の空のディレクトリがリポジトリに存在する必要はありません。

+0

こんにちは!上記のように、質問の編集とすべてのコメント。 Subversion(TortoiseSVN)は、フォルダを無視し、既にバージョン管理されている場合、フォルダを削除します。バージョン管理されていないフォルダを無視すると、削除を行わずに無視されます。バージョン管理されたすべてのフォルダについて、内容に "svn:ignore *"を使用する必要があります。フォルダを無視すると、次回のコミット時にリポジトリから削除されます(LWCではなく)。 – trejder

+0

@trejder 'junk_folder'と呼ばれるバージョン管理されたフォルダがあり、' svn:ignore junk_folder'を親フォルダに追加すると、Tortoiseは何もせずに 'junk_folder'を削除します。私はその中の論理を見ることができると思うが、それは危険に思う。 –

+0

@trejder TortoiseSVNのドキュメントをチェックしました。既存のファイルまたはフォルダを無視リストに追加することはできません。ただし、無視リストには「無視」および「非反転ファイル」を選択できます。 –

2

私はEclipse SubversiveとTortoise SVNを使用しています。

この問題への私のアプローチは、亀のプロパティダイアログを使用することです(私はEclipseが同じ機能を持っていると思う)

あなたは右、作業コピーのフォルダに例えば「TMP」または「キャッシュをクリックした場合'などを追加するだけで、' svn:ignore 'プロパティを追加してそこにワイルドカードを置くことができます。追加するプロパティのクイックリストではないため、高度なボタンを使用して追加する必要があります。

私は主にJoomlaでウェブサイトを開発しています。定期的にインストーラやその他のコンポーネントがリポジトリに入れたくない場所にファイルを残しています。そして、 'svn:ignore'これらのフォルダを '右クリック無視'の方法で使用すると、これらのフォルダは完全に除外されていることを意味します。これらのフォルダの内容は除外されます。特定の拡張子。

stackoverflowのから多くの助言を得た後、私はそれが誰かを役に立てば幸いちょうどこの質問に答えるためにするために、今日サインアップして - 私はスクリーンショットを添付しようとしたが、十分ではない担当者:(

関連する問題