# File lib/ssc.rb, line 84
    def commit
      params= {:remote       => true,
               :appliance_id => options.appliance_id,
               :username     => options.username,
               :password     => options.password}

      # Add or Remove Repositories
      repository_file= RepositoryFile.new
      ["add", "remove"].each do |action|
        while repository= repository_file.pop(action)
          invoke "s_s_c:handler:repository:#{action}", [repository], params
        end
      end
      repository_file.save

      # Add, Remove, Ban and Unban  Packages
      package_file= PackageFile.new
      ["add", "remove", "ban", "unban"].each do |action|
        while package= package_file.pop(action)
          invoke "s_s_c:handler:package:#{action}", [package], params
        end
      end
      package_file.save

      # Add Overlay Files
      file_list = FileListFile.new
      while file= file_list.pop("add")
        params= params.merge(file[:params])
        invoke "s_s_c:handler:overlay_file:add", [file[:full_path]], params
      end
      # Remove Overlay Files
      while file= file_list.pop("remove")
        invoke "s_s_c:handler:overlay_file:remove", [file[:name]], params
      end
      file_list.save
    end