13

アプリケーションが一時ファイルを置くジャンクフォルダがあります。(確かに)コミットしたくないのですが、フォルダーが存在している必要があります。そうしないと、アプリケーションがクラッシュします。

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

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

SVN内の特定のフォルダーを削除せずに完全に無視できるようにする解決策はありますか(したがって、何が入れられても、バージョン管理されていないものとして報告されず、自動コミットされません)?

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

4

4 に答える 4

12

「junk_folder」自体ではなく、そのフォルダー内の「*」にsvn:ignoreを追加するだけでよいと思います(つまり、「junk_folder / *」を無視します)。

TortoiseSVNにそのためのボタンがあるかどうかはわかりませんが、コマンドラインから次のコマンドで実行できます。

svn propset svn:ignore "*" junk_folder

(少なくとも、それは私の頭のてっぺんから正しい構文だと思います。誰かがそれが間違っていると思ったら、私を訂正してください)

于 2012-06-20T15:20:58.750 に答える
2

私はこれをコンパイラの中間出力フォルダなどに使用しますが、何も削除されたことはありません。

これを再テストするために、作業コピーの1つにバージョン管理されていないディレクトリが見つかりました。ディレクトリを右クリックして、[リストを無視するために追加]オプションに移動しました。ディレクトリ名に展開されました。ディレクトリ名を選択すると、無視リストに追加されたことを示すポップアップメッセージが表示されました。作業コピーのステータスを確認すると、親フォルダーにはプロパティのみの変更がありました。削除対象としてマークされたファイルはありません。

ファイルとディレクトリを無視する

ここに画像の説明を入力してください

補足として、 [変更の確認]ダイアログを使用するときにバージョン管理されていないファイルを非表示にし、ダイアログの下部にあるチェックボックスを使用してダイアログをコミットすることもできます。

于 2012-06-20T15:19:26.747 に答える
2

EclipseSubversiveとTortoiseSVNを使用しています。

この問題への私のアプローチは、Tortoiseのプロパティダイアログを使用することです(ただし、Eclipseにも同じ機能があると思います)

作業コピー内のフォルダ(たとえば、「tmp」や「cache」など)を右クリックすると、「svn:ignore」プロパティを追加して、そこにワイルドカードを配置できます。追加するプロパティのクイックリストではないため、詳細ボタンを使用して追加する必要があります。

私は主にJoomlaでWebサイトを開発しており、定期的にインストーラーやその他のコンポーネントがリポジトリ内の不要な場所にファイルを残しています。そして、前述のように、「右クリック無視」メソッドを使用してこれらのフォルダを「無視」することは、これらのフォルダがリポジトリから完全に除外されることを意味します。これは、必要なものではありません。これらのフォルダのコンテンツを除外するか、場合によっては、特定の拡張子。

stackoverflowから多くのアドバイスを受けた後、私は今日この質問に答えるためにサインアップしたので、誰かが役立つことを願っています-スクリーンショットを添付しようとしましたが、十分な担当者ではありません:(

于 2013-08-15T19:07:13.800 に答える
1

「標準のTortoiseSVN無視機能を使用すると、svn:ignore junk_folder親フォルダーにプロパティが追加されますが、削除されjunk_folderます... 」とはどういう意味ですか?

Subversionは、無視するように要求したフォルダーを削除しません。実際、それが次の全体の目的ですsvn:ignore。Subversionがそれについて泣き言を言うことなく、リポジトリにないフォルダを作成できるようにすること。

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

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

私の提案は、スクリプトがjunk_folder存在しない場合は、必要なスクリプトがスクリプトを作成することを確認し、リポジトリに追加しないことです。このpre-commitフックを使用して、リポジトリから除外することができます。これを処理するための最良の方法です。junk_folder名前の付いた空のディレクトリがリポジトリにある必要がある理由はありません。

于 2012-06-20T19:08:24.233 に答える