I had mistakenly checked in .pyc files into svn, So I took this approach of deleting all the .pyc files in the current working copy directory tree and then using svn remove to the remove from the repository. The following is the snippet I wrote then to for the purpose.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
# Remove .pyc files from svn from the current directory tree. import os import subprocess # Delete the files first. for dirpath, dirnames, filenames in os.walk(os.getcwd()): for each_file in filenames: if each_file.endswith('.pyc'): if os.path.exists(os.path.join(dirpath, each_file)): os.remove(os.path.join(dirpath, each_file)) # Now, get the svn status and remove the deleted files. cout, cerr = subprocess.Popen('svn status .', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() files = cout.split('\n') output =  for fname in files: if fname.startswith('!'): output.append(fname.strip('!').strip()) for each in output: try: os.system('svn remove ' + each) except Exception, e: print e