old_contents: #!/usr/bin/env python
  
  import os 
  
  def mkdir( path ):
      try:
  	if not os.path.exists(path):
  		os.makedirs( path, 0755 );
      except OSError:
  	pass
  
new_contents: #!/usr/bin/env python
  
  import os 
  
  def mkdir( path ):
      try:
  	if not os.path.exists(path):
  		os.makedirs( path, 0755 );
      except OSError:
  	pass
  
  def recursive_overwrite(src, dest, ignore=None):
      if os.path.isdir(src):
          if not os.path.isdir(dest):
              os.makedirs(dest)
          files = os.listdir(src)
          if ignore is not None:
              ignored = ignore(src, files)
          else:
              ignored = set()
          for f in files:
              if f not in ignored:
                  recursive_overwrite(os.path.join(src, f), 
                                      os.path.join(dest, f), 
                                      ignore)
      else:
          shutil.copyfile(src, dest)
  
subject: add recursive_overwrite