    # File lib/standard/facets/fileutils/stage.rb, line 15
      def stage(stage_directory, source_directory, files, options={})
        return stage_directory if options[:noop] || options[:dryrun]

        stage_directory, source_directory = stage_directory.to_s, source_directory.to_s
        ## ensure existance of staging area
        rm_r(stage_directory) if File.directory?(stage_directory)
        mkdir_p(stage_directory)
        ## link files into staging area
        files.each do |f|
          src  = File.join(source_directory, f)
          file = File.join(stage_directory, f)
          if File.directory?(src)
            mkdir_p(file) unless File.exist?(file)
          else
            fdir = File.dirname(file)
            mkdir_p(fdir) unless File.exist?(fdir)
            unless File.exist?(file) and File.mtime(file) >= File.mtime(src)
              ln(src, file) #safe_ln ?
            end
          end
        end
        return stage_directory
      end