1. ホーム
  2. svn

[解決済み] Subversion のバージョン管理外のファイルを自動的に削除する

2022-10-10 01:21:12

質問

バージョン コントロール下にない作業コピーのすべてのファイルを再帰的に削除する方法を知っている人はいますか。(VMware の自動ビルドでより信頼性の高い結果を得るために、これが必要です)。

どのように解決するのですか?

編集してください。

Subversion 1.9.0では、これを行うためのオプションが導入されました。

svn cleanup --remove-unversioned

その前に、このpythonスクリプトを使っています。

import os
import re

def removeall(path):
    if not os.path.isdir(path):
        os.remove(path)
        return
    files=os.listdir(path)
    for x in files:
        fullpath=os.path.join(path, x)
        if os.path.isfile(fullpath):
            os.remove(fullpath)
        elif os.path.isdir(fullpath):
            removeall(fullpath)
    os.rmdir(path)

unversionedRex = re.compile('^ ?[\?ID] *[1-9 ]*[a-zA-Z]* +(.*)')
for l in  os.popen('svn status --no-ignore -v').readlines():
    match = unversionedRex.match(l)
    if match: removeall(match.group(1))

かなり仕事ができるようです。