svn
cmd

svnとコマンドプロンプトだけで削除されたファイルをバージョン管理から削除する

More than 1 year has passed since last update.

需要があったので書いておく。

目的

Subversionで管理対象のファイルが削除されている時に、そのファイルをバージョン管理からも削除したい。
ただし、外部ツールに依存したくないのでsvnとコマンドプロンプトだけで実現する。

方法

バージョン管理中のファイルを削除した場合は紛失扱いになる為、svn statusの結果、先頭文字が!になる。
これを利用して、先頭文字が!かつ、存在しないファイルをsvn deleteすればよい。
具体的には以下の様なコードである。

for /F "usebackq delims=" %%i in (`svn status`) do call :check "%%i"
exit

:check
set TARGET=%~1
if "%TARGET:~0,1%"=="!" if not exist "%TARGET:~8%" svn delete %TARGET:~8%

以上