4

VSS リポジトリを SVN に移行していますが、最初のチェックインで誤ってすべての _vti_cnf、*.scc ファイルを含めてしまいました。これらをSVNから削除したいと思います。(もちろん、永続的ではありません - HEAD だけです)。問題のアプリケーションは非常に大きく、フォルダーごとにこれらのファイルを見つけて削除するには、非常に時間がかかります。

提案?これを行う明確な方法があるに違いありませんが、週末が近いことが私の高次脳機能を妨げています。

4

5 に答える 5

4

ジョナスの答えはうまくいくはずです。Subversion の制御をバイパスして、ファイル システム レベルで競合を削除しているため、競合が発生している可能性があります。

TortoiseSVNを使用できる場合、次のように動作します (= コンテキスト メニューに必要なコマンドが表示されます)。

  • 検索ウィンドウを開く
  • 不要なファイルをすべて検索
  • リストでそれらを選択します
  • 右クリック
  • 「TortoiseSVN」 > 「削除」を選択します
  • 変更をコミットする

終わり!

バージョン管理のアドバイスをするときの通常の免責事項、注意してください、バックアップをとってください、私は一切の責任を負いません など.

于 2010-04-15T17:06:09.527 に答える
3

Windows コマンド プロンプトでは、「for」を使用して再帰的なファイル検索を実行し、一致するファイルごとに「svn delete」を呼び出すことができます。

C:\> for /r %i in (abc*def.sql) do svn delete %i

注意: バッチ ファイルでは、%i を %%i に置き換える必要があることに注意してください。

「for」で使用できる他のすべてのフラグについて調べるには (これは検索と解析のスイス アーミー ナイフです)、help コマンドを使用します。

C:\> help for
于 2010-04-29T10:48:39.520 に答える
2

Linux または Mac OS を実行している場合は、次findのように使用できます。

$ find . -type d -name "_vti_cnf" -exec svn delete {} \;

ただし、私はもう SVN ユーザーではありません (VSS を使用したこともありません)。そのため、コマンド ラインを変更するか、-print最初に試してみることをお勧めします。

于 2010-04-15T17:05:05.787 に答える
1

チェックアウト バージョンの *.scc ファイルを grep (またはファイルを検索するその他の操作) して削除し、コミットすることはできませんか?

于 2010-04-15T17:02:33.657 に答える
0

または、PowerShellを使用します。

Foreach ($file in Get-Childitem * -include "*.txt")
{
    svn del $file.name
}

ここで、*。txtはワイルドカードであり、*は削除するファイルを探す現在のディレクトリを指定します

于 2012-01-09T00:09:32.977 に答える