<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/models/node.rb</filename>
    </added>
    <added>
      <filename>config/initializers/svn.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/helpers.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/part.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/part_container.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/quoting.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/test_case.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/test_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/utils.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/Makefile</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/address.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/attachments.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/base64.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/compat.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/config.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/core_extensions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/encode.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/facade.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/header.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/info.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/interface.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/loader.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/mail.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/mailbox.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/mbox.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/net.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/obsolete.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/parser.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/parser.y</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/port.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/quoting.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/scanner.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/scanner_r.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/stringio.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/tmail.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/utils.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/action_mailer/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionmailer/lib/actionmailer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/benchmarking.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/caching.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cgi_ext.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cgi_ext/session.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cgi_process.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/components.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/cookies.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/dispatcher.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/filters.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/flash.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/helpers.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/http_authentication.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/integration.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/layout.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/mime_responds.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/mime_type.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/mime_types.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/record_identifier.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/request.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/request_profiler.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/rescue.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/resources.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/response.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/routing.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/routing_optimisation.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/session/drb_server.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/session/drb_store.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/session_management.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/status_codes.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/streaming.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/test_case.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/test_process.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/url_rewriter.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_controller/verification.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_pack.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_pack/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/compiled_templates.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/javascripts/controls.js</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/javascripts/dragdrop.js</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/javascripts/effects.js</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/javascripts/prototype.js</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/partials.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/template_error.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/template_handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/actionpack/lib/actionpack.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/aggregations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/association_collection.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/attribute_methods.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/calculations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/callbacks.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/fixtures.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/locking/optimistic.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/migration.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/observer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/query_cache.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/reflection.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/schema.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/schema_dumper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/serialization.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/timestamp.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/transactions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/validations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/vendor/db2.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/vendor/mysql.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/active_record/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activerecord/lib/activerecord.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/connection.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/custom_methods.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/formats.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/formats/json_format.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/http_mock.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/validations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/active_resource/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activeresource/lib/activeresource.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/basic_object.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/buffered_logger.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/clean_logger.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/array.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/blank.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/class.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/exception.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/file.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/float.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/integer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/logger.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/object.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/proc.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/range.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/unicode.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/test/unit/assertions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/time.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/dependencies.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/deprecation.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/duration.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/inflections.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/inflector.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/decoding.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/date.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/object.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/string.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/time.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/encoding.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/json/variable.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/multibyte.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/multibyte/chars.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/multibyte/generators/generate_tables.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/multibyte/handlers/passthru_handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler_proc.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/option_merger.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/ordered_options.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/test_case.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/testing.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/testing/default.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/values/time_zone.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/active_support/whiny_nil.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/activesupport/lib/activesupport.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/code_statistics.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/about.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/console.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/destroy.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/generate.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/ncgi/listener</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/ncgi/tracker</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/performance/benchmarker.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/performance/profiler.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/performance/request.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/plugin.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/process/inspector.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/process/reaper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/process/spawner.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/process/spinner.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/runner.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/server.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/servers/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/servers/lighttpd.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/servers/mongrel.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/servers/webrick.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/commands/update.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/console_app.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/console_sandbox.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/console_with_helpers.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/dispatcher.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/fcgi_handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/initializer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails/plugin.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails/plugin/loader.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails/plugin/locator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails/version.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/base.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/commands.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generated_attribute.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/lookup.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/manifest.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/options.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/scripts.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/scripts/destroy.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/scripts/generate.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/scripts/update.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/secret_key_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/simple_logger.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rails_generator/spec.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/railties_path.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/ruby_version_check.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/rubyprof_ext.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/source_annotation_extractor.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/annotations.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/databases.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/documentation.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/framework.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/log.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/misc.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/rails.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/routes.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/statistics.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/testing.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/tasks/tmp.rake</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/test_help.rb</filename>
    </added>
    <added>
      <filename>vendor/rails/railties/lib/webrick_server.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -42,7 +42,7 @@ class BrowserController &lt; ApplicationController
     end
 
     def find_node
-      @revision = params[:rev][1..-1] if params[:rev]
+      @revision = params[:rev][1..-1].to_i if params[:rev]
       @node     = current_repository.node(params[:paths] * '/', @revision)
     end
     
@@ -52,11 +52,11 @@ class BrowserController &lt; ApplicationController
 
     def retrieve_previous_changeset
       return nil if current_changeset.nil?
-      current_repository.changesets.find_before([@node.path], current_changeset)
+      current_repository.changesets.find_by_path(@node.path, :conditions =&gt; ['changed_at &lt; ?', current_changeset.changed_at], :order =&gt; 'changesets.changed_at desc')
     end
     
     def retrieve_next_changeset
       return nil if current_changeset.nil?
-      current_repository.changesets.find_after([@node.path], current_changeset)
+      current_repository.changesets.find_by_path(@node.path, :conditions =&gt; ['changed_at &gt; ?', current_changeset.changed_at], :order =&gt; 'changesets.changed_at')
     end
 end</diff>
      <filename>app/controllers/browser_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,9 +3,12 @@ class ChangesetsController &lt; ApplicationController
   before_filter :repository_subdomain_or_login_required, :only =&gt; :index
   before_filter :repository_member_required, :except =&gt; [:index, :public]
   before_filter :root_domain_required, :only =&gt; :public
-  before_filter :find_changeset, :only =&gt; [:show, :diff]
+  before_filter :find_node, :only =&gt; :diff
 
   caches_action_content :index, :show, :public
+  
+  helper_method :previous_changeset, :next_changeset
+  expiring_attr_reader :changeset_paths, :find_changeset_paths
 
   def index
     return global_index if repository_subdomain.blank? &amp;&amp; logged_in?
@@ -32,6 +35,10 @@ class ChangesetsController &lt; ApplicationController
   end
   
   def show
+    @changeset = current_repository.changesets.find_by_paths(changeset_paths, :conditions =&gt; ['revision = ?', params[:id]])
+    unless @changeset
+      return status_message(:error, &quot;You must be a member of this repository to visit this page.&quot;, &quot;changesets/error&quot;)
+    end
     @changes = @changeset.changes.paginate(:page =&gt; params[:page])
     respond_to do |format|
       format.html
@@ -39,18 +46,6 @@ class ChangesetsController &lt; ApplicationController
     end
   end
 
-  def diff
-    params[:r] =
-      case params[:r]
-        when 'rev'  then params[:n]
-        when 'date' then Date.new(params[:date][:year].to_i, params[:date][:month].to_i, params[:date][:day].to_i)
-        when nil    then 'head'
-        else params[:r]
-      end
-    @revision = params[:rev][1..-1].to_i if params[:rev]
-    @node     = current_repository.node(params[:paths] * '/', @revision)
-  end
-
   def action_url_to_id
     super + 
       if (action_name == 'index' &amp;&amp; repository_subdomain.blank? &amp;&amp; logged_in?) || (action_name != 'public' &amp;&amp; changeset_paths != :all)
@@ -65,14 +60,14 @@ class ChangesetsController &lt; ApplicationController
   end
 
   protected
-    %w(previous_changeset next_changeset changeset_paths).each { |m| expiring_attr_reader m, &quot;find_#{m}&quot; ; helper_method m }
+    %w(previous_changeset next_changeset changeset_paths).each { |m| expiring_attr_reader m, &quot;find_#{m}&quot; }
     
     def find_previous_changeset
-      current_repository.changesets.find_before(changeset_paths, @changeset)
+      current_repository.changesets.find_by_paths(changeset_paths, :conditions =&gt; ['changed_at &lt; ?', @changeset.changed_at], :order =&gt; 'changed_at desc')
     end
     
     def find_next_changeset
-      current_repository.changesets.find_after(changeset_paths, @changeset)
+      current_repository.changesets.find_by_paths(changeset_paths, :conditions =&gt; ['changed_at &gt; ?', @changeset.changed_at], :order =&gt; 'changed_at')
     end
     
     def find_changeset_paths
@@ -133,10 +128,16 @@ class ChangesetsController &lt; ApplicationController
       end
     end
 
-    def find_changeset
-      @changeset = current_repository.changesets.find_by_paths(changeset_paths, :conditions =&gt; ['revision = ?', params[:id]])
-      unless @changeset
-        status_message(:error, &quot;You must be a member of this repository to visit this page.&quot;, &quot;changesets/error&quot;)
+    def find_node
+      case params[:r]
+        when 'numb'
+          params[:r] = params[:n].to_i
+        when 'date'
+          params[:r] = Date.new(params[:date][:year].to_i, params[:date][:month].to_i, params[:date][:day].to_i)
+        when nil
+          params[:r] = 'h'
       end
+      @revision = params[:rev][1..-1].to_i if params[:rev]
+      @node     = current_repository.node(params[:paths] * '/', @revision)
     end
 end</diff>
      <filename>app/controllers/changesets_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,27 +1,63 @@
 # Parts were adapted from Retrospectiva
 # http://retrospectiva.org/browse/trunk/app/helpers/changesets_helper.rb?rev=141
 module ChangesetsHelper
-  def link_to_diff(text, revision, path, options = {})
-    link_to text, hosted_url(:diff, &quot;r#{revision}&quot;, path.split(&quot;/&quot;)), options
+  def link_to_diff(text, revision, *args)
+    options = args.last.is_a?(Hash) ? args.pop : {}
+    link_to text, hosted_url(:diff, &quot;r#{revision}&quot;, args.first.split(&quot;/&quot;)), options
   end
 
   def unified_diff_for(node, options = {})
-    old_rev = find_revision_for(node, options[:old_rev])
+    options[:old_rev] ||= node.previous_root
+    options[:new_rev] ||= node.root
+    options[:path]    ||= node.path
 
-    old_rev, new_rev, raw_diff = node.unified_diff_with(old_rev)
+    raw_diff = node.unified_diff_for options[:old_rev], options[:new_rev], options[:path]
     if raw_diff.empty?
       return nil
     end
-    
-    unified = Diff::Display::Unified.new(raw_diff)
-    
-    old_link, new_link = nil, nil
+    diff_line_regex = %r{@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@}
+    lines = raw_diff.split(&quot;\n&quot;)
+        
+    original_revision_num = lines[0].scan(%r{(\d+)}).flatten.first
+    current_revision_num = lines[1].scan(%r{(\d+)}).flatten.first
+    original_revision = nil
+    current_revision  = nil
     if controller.action_name == 'diff'
-      old_link = link_to_diff(truncate(old_rev, 7, ''), old_rev, node.path)
-      new_link = link_to_diff(truncate(new_rev, 7, ''),  new_rev,  node.path)
+      original_revision = link_to_diff(original_revision_num, original_revision_num, options[:path])
+      current_revision  = link_to_diff(current_revision_num,  current_revision_num,  options[:path])
     else
-      old_link = link_to_node(truncate(old_rev, 7, ''), node, old_rev)
-      new_link = link_to_node(truncate(new_rev, 7, ''),  node, new_rev)
+      original_revision = link_to_node(original_revision_num, options[:path], original_revision_num)
+      current_revision  = link_to_node(current_revision_num, options[:path], current_revision_num)
+    end
+    
+    th_pnum = content_tag('th', original_revision, :class =&gt; 'csnum')
+    th_cnum = content_tag('th', current_revision, :class =&gt; 'csnum')  
+    table_rows = []  
+        
+    lines = lines[2..lines.length].collect{ |line| h(line) }
+  
+    ln = [0, 0]   # line counter
+    lines = lines.collect do |line|      
+      if line.starts_with?('-')        
+        [ln[0] += 1, '', ' ' + line[1..line.length], 'delete']
+      elsif line.starts_with?('+')
+        ['', ln[1] += 1, ' ' + line[1..line.length], 'insert']
+      elsif line_defs = line.match(diff_line_regex)
+              ln[0] = line_defs[1].to_i - 1
+              ln[1] = line_defs[3].to_i - 1
+        ['---', '---', '', nil]
+      elsif line.match('\ No newline at end of file')
+        nil
+      else
+        [ln[0] += 1, ln[1] += 1, line, nil]
+      end     
+    end.compact
+    
+    lines[1..lines.length].collect do |line|
+      pnum = content_tag('td', line[0], :class =&gt; 'ln')
+      cnum = content_tag('td', line[1], :class =&gt; 'ln')    
+      code = content_tag('td', line[2].gsub(/ /, '&amp;nbsp;'), :class =&gt; 'code' + (line[3] ? &quot; #{line[3]}&quot; : ''))
+      table_rows &lt;&lt; content_tag('tr', pnum + cnum + code)
     end
     
     %(
@@ -30,24 +66,21 @@ module ChangesetsHelper
       &lt;thead&gt;
         &lt;tr class=&quot;controls&quot;&gt;
           &lt;td colspan=&quot;3&quot;&gt;
-            &lt;div class=&quot;control&quot;&gt;#{yield old_rev, new_rev if block_given?}&lt;/div&gt;
+            &lt;div class=&quot;control&quot;&gt;#{yield original_revision_num, current_revision_num if block_given?}&lt;/div&gt;
           &lt;/td&gt;
         &lt;/tr&gt;
         &lt;tr&gt;
-          &lt;th class=&quot;csnum&quot;&gt;#{old_link}&lt;/th&gt;
-          &lt;th class=&quot;csnum&quot;&gt;#{new_link}&lt;/th&gt;
+          #{th_pnum}
+          #{th_cnum}
           &lt;th&gt;&amp;nbsp;&lt;/th&gt;
         &lt;/tr&gt;
       &lt;/thead&gt;
-      &lt;tbody&gt;
-      #{unified.render(Warehouse::DiffRenderer.new)}
-      &lt;/tbody&gt;
+      #{table_rows.join(&quot;\n&quot;)}
     &lt;/table&gt;
     &lt;/div&gt;
     )
   end
   
-  # wraps a change's diff and specifies a header.
   def diff_for(change)
     unified_diff_for change.node, :id =&gt; dom_id(change) do |original_revision_num, current_revision_num|
       %(
@@ -56,26 +89,4 @@ module ChangesetsHelper
       )
     end
   end
-  
-  def find_revision_for(node, other)
-    return other if other.nil? || other.is_a?(Silo::Node)
-    if other.is_a?(Date)
-      changeset = current_repository.changesets.find_by_date_for_path(other, node.path)
-      return changeset ? changeset.revision : nil
-    end
-    
-    node.repository.revision?(other)     || 
-      relative_revision_for(node, other) ||
-      raise(Silo::Node::Error, &quot;Invalid Revision: #{other.inspect}&quot;)
-  end
-  
-  def relative_revision_for(node, other)
-    changeset = \
-      case other
-        when /^head/i then current_repository.changesets.find(:first)
-        when /^next/i then current_repository.changesets.find_after(changeset_paths, @changeset)
-        when /^prev/i then current_repository.changesets.find_before(changeset_paths, @changeset)
-      end
-    changeset ? changeset.revision : nil
-  end
 end</diff>
      <filename>app/helpers/changesets_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
 class Change &lt; ActiveRecord::Base
-  def self.per_page() 15 end
   include PathAccessibility
   validates_presence_of :changeset_id, :name
   belongs_to :changeset
@@ -11,8 +10,12 @@ class Change &lt; ActiveRecord::Base
     @node ||= changeset.repository.node(path, revision)
   end
   
-  def silo
-    changeset.repository.silo
+  def diffable?
+    node ? node.diffable? : false
+  end
+  
+  def backend
+    changeset.repository.backend
   end
   
   def modified?</diff>
      <filename>app/models/change.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ class Changeset &lt; ActiveRecord::Base
   validates_presence_of   :repository_id, :revision
   validates_uniqueness_of :revision, :scope =&gt; :repository_id
 
-  delegate :silo, :to =&gt; :repository
+  delegate :backend, :to =&gt; :repository
   expiring_attr_reader :user, :retrieve_user
 
   def self.search(query, options = {})
@@ -52,14 +52,6 @@ class Changeset &lt; ActiveRecord::Base
     latest_changeset = lambda { revision ? find_by_revision(revision) : find(:first, :order =&gt; 'changesets.changed_at desc') }
     path.blank? ? latest_changeset.call : with_paths([path], &amp;latest_changeset)
   end
-  
-  def self.find_before(paths, changeset)
-    find_by_paths(paths, :conditions =&gt; ['changesets.id != ? and changesets.changed_at &lt;= ?', changeset.id, changeset.changed_at], :order =&gt; 'changesets.changed_at desc')
-  end
-  
-  def self.find_after(paths, changeset)
-    find_by_paths(paths, :conditions =&gt; ['changesets.id != ? and changesets.changed_at &gt;= ?', changeset.id, changeset.changed_at], :order =&gt; 'changesets.changed_at desc')
-  end
 
   def to_param
     revision.to_s</diff>
      <filename>app/models/changeset.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,6 @@ class Repository &lt; ActiveRecord::Base
   include PermissionMethods, CommandSanitizer
   has_permalink :name, :subdomain
   validates_presence_of :name, :path, :subdomain
-  validates_inclusion_of :scm_type, :in =&gt; %w(svn git)
   attr_accessible :name, :path, :subdomain, :public, :full_url
   
   has_many :permissions, :conditions =&gt; ['active = ?', true] do
@@ -27,7 +26,7 @@ class Repository &lt; ActiveRecord::Base
   has_many :hooks, :dependent =&gt; :destroy
   has_one  :latest_changeset, :class_name =&gt; 'Changeset', :foreign_key =&gt; 'repository_id', :order =&gt; 'changed_at desc'
   before_destroy :clear_changesets
-  expiring_attr_reader :silo, :retrieve_silo
+  expiring_attr_reader :backend, :retrieve_svn_backend
 
   def path=(value)
     write_attribute :path, value.to_s.chomp('/')
@@ -77,31 +76,35 @@ class Repository &lt; ActiveRecord::Base
   end
 
   def node(path, rev = nil)
-    silo ? silo.node_at(path, rev) : nil
+    backend ? Node.new(self, path, rev) : nil
   end
 
-  def revisions_to_sync
-    return [] if silo.nil?
-    # the module hasn't been extended yet.
-    # calling silo extends it, but we need to call
-    # the module's unbound method
-    scm_type_mixin.instance_method(:revisions_to_sync).bind(self).call
-  end
-  
-  def sync_progress
-    return 0.0 if silo.nil?
-    # the module hasn't been extended yet.
-    # calling silo extends it, but we need to call
-    # the module's unbound method
-    scm_type_mixin.instance_method(:sync_progress).bind(self).call
+  def revisions_to_sync(refresh = false)
+    return nil if backend.nil?
+    unless refresh || @revisions_to_sync
+      @revisions_to_sync = synced_revision..latest_revision
+    end
+    @revisions_to_sync
   end
   
   def sync?
-    silo &amp;&amp; synced_revision != latest_revision
+    backend &amp;&amp; revisions_to_sync.first &lt;= revisions_to_sync.last
   end
 
   def latest_revision
-    @latest_revision ||= silo &amp;&amp; silo.latest_revision
+    @latest_revision ||= backend &amp;&amp; backend.youngest_rev
+  end
+
+  def latest_changed_at
+    latest_changeset ? latest_changeset.changed_at : nil
+  end
+  
+  def synced_revision
+    latest_changeset ? latest_changeset.revision.to_i + 1 : 1
+  end
+
+  def sync_progress
+    (((synced_revision - 1).to_f / latest_revision.to_f) * 100).floor
   end
 
   def sync_revisions(num)
@@ -131,19 +134,10 @@ class Repository &lt; ActiveRecord::Base
       Changeset.delete_all ['repository_id = ?', id]
     end
 
-    def retrieve_silo
-      scm_type_mixin
-      path.blank? ? nil : Silo::Repository.new(scm_type, :path =&gt; path)
+    def retrieve_svn_backend
+      path.blank? ? nil : Svn::Repos.open(path)
     rescue Svn::Error
       logger.warn $!.message
       nil
     end
-    
-    def scm_type_mixin
-      if @scm_type_mixin.nil?
-        @scm_type_mixin = self.class.const_get(scm_type.to_s.capitalize + &quot;Methods&quot;)
-        extend @scm_type_mixin
-      end
-      @scm_type_mixin
-    end
 end</diff>
      <filename>app/models/repository.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@
     &lt;option value=&quot;next&quot;&lt;%= %( selected=&quot;selected&quot;) if params[:r] =~ /^n/i %&gt;&gt;with NEXT&lt;/option&gt;
     &lt;% end -%&gt;
     &lt;option value=&quot;date&quot;&lt;%= %( selected=&quot;selected&quot;) if params[:r] =~ /^d/i %&gt;&gt;with a specific date&lt;/option&gt;
-    &lt;option value=&quot;rev&quot;&lt;%= %( selected=&quot;selected&quot;) if params[:r] =~ /^\d+$/i %&gt;&gt;with another changeset&lt;/option&gt;
+    &lt;option value=&quot;numb&quot;&lt;%= %( selected=&quot;selected&quot;) if params[:r] =~ /^\d+$/i %&gt;&gt;with another changeset&lt;/option&gt;
   &lt;/select&gt;
   &lt;input id=&quot;diff-num&quot; name=&quot;n&quot; value=&quot;&quot; size=&quot;6&quot; style=&quot;display:none&quot; /&gt;
   &lt;span id=&quot;diff-date&quot;&lt;%= %( style=&quot;display:none&quot;) unless params[:r] =~ /^d/i %&gt;&gt;</diff>
      <filename>app/views/browser/_control_center.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@
   &lt;div class=&quot;cs-meta&quot;&gt;
     &lt;%= avatar_for(current_changeset.user) %&gt;
     &lt;p&gt;
-      &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(truncate(current_changeset.revision, 7, ''), hosted_url(:changeset, current_changeset.revision)) %&gt;&lt;/span&gt;
+      &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(current_changeset.revision, hosted_url(:changeset, current_changeset.revision)) %&gt;&lt;/span&gt;
     &lt;/p&gt;
   &lt;/div&gt;
   &lt;div class=&quot;cs-log clearfix&quot;&gt;      </diff>
      <filename>app/views/browser/dir.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
   &lt;h2&gt;Sorry, you're not authorized to view this page&lt;/h2&gt;
   &lt;p&gt;&lt;%= @message %&gt;&lt;/p&gt;
   
-  &lt;% if current_repository.silo.nil? -%&gt;
+  &lt;% if current_repository.backend.nil? -%&gt;
     &lt;p&gt;The Repository Path is invalid and needs to be fixed in the &lt;%= link_to 'Repository Admin', hosted_url(:admin) %&gt;&lt;/p&gt;
   &lt;% elsif logged_in? -%&gt;
     &lt;% paths = current_user.permissions.paths_for(current_repository) -%&gt;</diff>
      <filename>app/views/browser/error.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@
   &lt;div class=&quot;cs-meta&quot;&gt;
     &lt;%= avatar_for(current_changeset.user) %&gt;
     &lt;p&gt;
-      &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(truncate(current_changeset.revision, 7, ''), hosted_url(:changeset, current_changeset.revision)) %&gt;&lt;/span&gt;
+      &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(current_changeset.revision, hosted_url(:changeset, current_changeset.revision)) %&gt;&lt;/span&gt;
     &lt;/p&gt;
   &lt;/div&gt;
   &lt;div class=&quot;cs-log clearfix&quot;&gt;      </diff>
      <filename>app/views/browser/file.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,9 @@
 &lt;% @fullscreen = true %&gt;
+&lt;%# title &quot;Changeset #{@changeset.revision}, #{h(@changeset.message)}&quot; %&gt;
 
 &lt;%= render :partial =&gt; &quot;browser/control_center&quot;, :locals =&gt; { :node =&gt; @node } %&gt;
 
 &lt;%= unified_diff = unified_diff_for @node, :old_rev =&gt; params[:r] -%&gt;
 &lt;% if unified_diff.blank? -%&gt;
-  &lt;p&gt;No diff data found for &lt;%=h @path %&gt; Rev &lt;%=h @node.revision %&gt; -&amp;gt; &lt;%=h params[:r] %&gt;&lt;/p&gt;
+  &lt;p&gt;No diff data found for &lt;%=h @path %&gt; &lt;%= @node.check_revisions(params[:r], @node.revision) * &quot;-&quot; %&gt;&lt;/p&gt;
 &lt;% end -%&gt;
\ No newline at end of file</diff>
      <filename>app/views/changesets/diff.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
   &lt;h2&gt;Sorry, you're not authorized to view this changeset&lt;/h2&gt;
   &lt;p&gt;&lt;%= @message %&gt;&lt;/p&gt;
   
-  &lt;% if current_repository.silo.nil? -%&gt;
+  &lt;% if current_repository.backend.nil? -%&gt;
     &lt;p&gt;The Repository Path is invalid and needs to be fixed in the &lt;%= link_to 'Repository Admin', hosted_url(:admin) %&gt;&lt;/p&gt;
   &lt;% elsif logged_in? -%&gt;
   &lt;p&gt;</diff>
      <filename>app/views/changesets/error.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 &lt;% if repository_admin? &amp;&amp; current_repository &amp;&amp; current_repository.sync? -%&gt;
-&lt;div class=&quot;info&quot;&gt;&lt;%= pluralize current_repository.revisions_to_sync.size, 'revision' %&gt; need to be synced.  You can do this from the command line or you can 
+&lt;div class=&quot;info&quot;&gt;Revisions &lt;%= current_repository.revisions_to_sync.inspect.sub(/\.\./, '-') %&gt; need to be synced.  You can do this from the command line or you can 
   do this in the administration user interface.  Command line syncing is much faster.&lt;/div&gt;
 &lt;% end -%&gt;
 
@@ -29,12 +29,12 @@
     &lt;div class=&quot;cs-meta&quot;&gt;
       &lt;%= avatar_for(user) %&gt;
       &lt;p&gt;
-        &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(truncate(changeset.revision, 7, ''), hosted_url(changeset.repository, :changeset, :id =&gt; changeset.revision)) %&gt;&lt;/span&gt;
+        &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(changeset.revision, hosted_url(changeset.repository, :changeset, :id =&gt; changeset.revision)) %&gt;&lt;/span&gt;
       &lt;/p&gt;
     &lt;/div&gt;
     &lt;div class=&quot;cs-log clearfix&quot;&gt;      
        &lt;%= simple_format(h(changeset.message)) %&gt;
-      &lt;span class=&quot;timenauthor&quot;&gt;by &lt;%= changeset.author %&gt;, &lt;%= jstime changeset.changed_at %&gt; in &lt;%= link_to(h(changeset.repository.name), hosted_url(changeset.repository, :changesets)) %&gt;&lt;/span&gt;
+      &lt;span class=&quot;timenauthor&quot;&gt;by &lt;%= changeset.author %&gt;, &lt;%= jstime changeset.changed_at %&gt;&lt;/span&gt;
     &lt;/div&gt;
   &lt;/li&gt;
   &lt;% end -%&gt;
@@ -66,7 +66,6 @@
     &lt;% end %&gt;
   &lt;/ul&gt;
 &lt;/div&gt;
-
 &lt;% elsif repository_subdomain.blank? -%&gt;
 &lt;div class=&quot;sideblock&quot;&gt;
   &lt;h3&gt;&lt;%= 'Public ' if controller.action_name == 'public' %&gt;Repository Activity&lt;/h3&gt;</diff>
      <filename>app/views/changesets/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@
   &lt;div class=&quot;cs-meta&quot;&gt;
     &lt;%= avatar_for(@changeset.user) %&gt;
     &lt;p&gt;
-      &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(truncate(@changeset.revision, 7, ''), hosted_url(:changeset, @changeset.revision)) %&gt;&lt;/span&gt;
+      &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(@changeset.revision, hosted_url(:changeset, @changeset.revision)) %&gt;&lt;/span&gt;
     &lt;/p&gt;
   &lt;/div&gt;
   &lt;div class=&quot;cs-log clearfix&quot;&gt;      </diff>
      <filename>app/views/changesets/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@
   &lt;%= link_to_node &quot;@#{changeset.revision}&quot;, @node, changeset.revision, :class =&gt; 'file-history' %&gt;
   &lt;div class=&quot;cs-meta&quot;&gt;
     &lt;%= avatar_for(user) %&gt;
-    &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(truncate(changeset.revision, 7, ''), hosted_url(:changeset, changeset.revision)) %&gt;&lt;/span&gt;
+    &lt;span class=&quot;change-number&quot;&gt;&lt;%= link_to(changeset.revision, hosted_url(:changeset, changeset.revision)) %&gt;&lt;/span&gt;
   &lt;/div&gt;
   &lt;div class=&quot;cs-log clearfix&quot;&gt;      
      &lt;%= simple_format(h(changeset.message)) %&gt;
@@ -16,4 +16,7 @@
 &lt;% end -%&gt;
 &lt;/ul&gt;
 
-&lt;%= will_paginate @changesets %&gt;
\ No newline at end of file
+&lt;%= will_paginate @changesets %&gt;
+
+&lt;% content_for :sidebar do -%&gt;
+&lt;% end -%&gt;
\ No newline at end of file</diff>
      <filename>app/views/history/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@
   &lt;div class=&quot;overlay-content&quot;&gt;
     &lt;h2&gt;Thanks for installing Warehouse, enjoy!&lt;/h2&gt;
     
-    &lt;% if @repository.silo -%&gt;
+    &lt;% if @repository.backend -%&gt;
     &lt;div class=&quot;overlay-form oform&quot;&gt;
       &lt;h3 style=&quot;padding:10px&quot;&gt;Sync your repository&lt;/h3&gt;
       &lt;p&gt;In order to view the changesets of this repository you need to sync &lt;%= pluralize @repository.latest_revision, 'revision' %&gt;.&lt;/p&gt;</diff>
      <filename>app/views/install/install.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -154,7 +154,14 @@
         &lt;% end -%&gt;
       &lt;/div&gt;
       &lt;!-- /content --&gt;
-
+      &lt;!-- footer --&gt;
+      &lt;div id=&quot;footer&quot;&gt;
+        &lt;!-- &lt;form action=&quot;/&quot; method=&quot;post&quot; id=&quot;command-line&quot;&gt;
+          &lt;input id=&quot;commando&quot; type=&quot;text&quot; /&gt;
+        &lt;/form&gt; --&gt;
+        &lt;a id=&quot;powered&quot; href=&quot;http://warehouseapp.com&quot; title=&quot;Warehouse v&lt;%= Warehouse.version %&gt;: web-based subversion browser&quot;&gt;&lt;img src=&quot;/images/app/warehouse-logo.png&quot; title=&quot;Warehouse v&lt;%= Warehouse.version %&gt;: web-based Subversion Browser&quot; alt=&quot;Warehouse logo&quot; /&gt;&lt;/a&gt;
+      &lt;/div&gt;
+      &lt;!-- /footer --&gt;
       
     &lt;/div&gt;
     &lt;!-- /container --&gt;</diff>
      <filename>app/views/layouts/application.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -21,10 +21,9 @@
     &lt;%= link_to h(repo.name), hosted_url(repo, :admin) %&gt;
     &lt;span class=&quot;log&quot;&gt;&lt;%= repo.path %&gt;&lt;/span&gt;
   &lt;% if repo.sync? %&gt;
-  &lt;% unless repo.sync_progress == 100 %&gt;
-  
     &lt;div class=&quot;need-sync&quot; id=&quot;sync-&lt;%= repo.id %&gt;&quot;&gt;
       &lt;span id=&quot;percent-&lt;%= repo.id %&gt;&quot; class=&quot;sync-percent&quot;&gt;&lt;%= repo.sync_progress %&gt;%&lt;/span&gt;
+
       The changeset(s)
       &lt;%= repo.revisions_to_sync.first %&gt;&lt;%= &quot;-#{repo.revisions_to_sync.last}&quot; if repo.revisions_to_sync.first != repo.revisions_to_sync.last %&gt;
       need to be synced.
@@ -42,7 +41,6 @@
         });
       &lt;% end -%&gt;
     &lt;/div&gt;
-    &lt;% end %&gt;
   &lt;% end -%&gt;
     &lt;ul class=&quot;admin-controls&quot;&gt;
       &lt;% if repo.sync? %&gt;</diff>
      <filename>app/views/repositories/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -55,9 +55,4 @@ Rails::Initializer.run do |config|
   
   # Application configuration should go into files in config/initializers
   # -- all .rb files in that directory is automatically loaded
-  
-  config.after_initialize do
-    require 'diff-display'
-    Silo::Node.send :include, PathAccessibility
-  end
 end
\ No newline at end of file</diff>
      <filename>config/environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ REPO_ROOT_REGEX = /^(\/?(admin|changesets|browser|install|login|logout|reset|for
 ActionController::Routing::Routes.draw do |map|
   map.connect &quot;:asset/:plugin/*paths&quot;, :asset =&gt; /images|javascripts|stylesheets/, :controller =&gt; &quot;assets&quot;, :action =&gt; &quot;show&quot;
 
-  map.diff &quot;changesets/diff/:rev/*paths&quot;, :controller =&gt; &quot;changesets&quot;, :action =&gt; &quot;diff&quot;, :rev =&gt; /r\w+/
+  map.diff &quot;changesets/diff/:rev/*paths&quot;, :controller =&gt; &quot;changesets&quot;, :action =&gt; &quot;diff&quot;, :rev =&gt; /r\d+/
 
   map.resources :changesets, :has_many =&gt; :changes, :collection =&gt; { :public =&gt; :get }
   
@@ -26,7 +26,7 @@ ActionController::Routing::Routes.draw do |map|
   end
 
   map.with_options :controller =&gt; &quot;browser&quot; do |b|
-    b.rev_browser &quot;browser/:rev/*paths&quot;, :rev =&gt; /r\w+/
+    b.rev_browser &quot;browser/:rev/*paths&quot;, :rev =&gt; /r\d+/
     b.browser     &quot;browser/*paths&quot;
     b.blame       &quot;blame/*paths&quot;, :action =&gt; &quot;blame&quot;
     b.text        &quot;text/*paths&quot;,  :action =&gt; &quot;text&quot;</diff>
      <filename>config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version =&gt; 31) do
+ActiveRecord::Schema.define(:version =&gt; 28) do
 
   create_table &quot;avatars&quot;, :force =&gt; true do |t|
     t.string  &quot;content_type&quot;
@@ -36,7 +36,6 @@ ActiveRecord::Schema.define(:version =&gt; 31) do
     t.text    &quot;path&quot;
     t.text    &quot;from_path&quot;
     t.integer &quot;from_revision&quot;
-    t.boolean &quot;diffable&quot;,      :default =&gt; false
   end
 
   add_index &quot;changes&quot;, [&quot;changeset_id&quot;], :name =&gt; &quot;index_changes_on_changeset_id&quot;
@@ -105,15 +104,11 @@ ActiveRecord::Schema.define(:version =&gt; 31) do
   end
 
   create_table &quot;repositories&quot;, :force =&gt; true do |t|
-    t.string   &quot;name&quot;
-    t.string   &quot;path&quot;
-    t.string   &quot;subdomain&quot;
-    t.boolean  &quot;public&quot;
-    t.string   &quot;full_url&quot;
-    t.string   &quot;scm_type&quot;,          :default =&gt; &quot;svn&quot;
-    t.datetime &quot;synced_changed_at&quot;
-    t.string   &quot;synced_revision&quot;
-    t.integer  &quot;changesets_count&quot;,  :default =&gt; 0
+    t.string  &quot;name&quot;
+    t.string  &quot;path&quot;
+    t.string  &quot;subdomain&quot;
+    t.boolean &quot;public&quot;
+    t.string  &quot;full_url&quot;
   end
 
   add_index &quot;repositories&quot;, [&quot;subdomain&quot;], :name =&gt; &quot;index_repositories_on_subdomain&quot;
@@ -128,7 +123,6 @@ ActiveRecord::Schema.define(:version =&gt; 31) do
     t.string  &quot;token&quot;
     t.string  &quot;login&quot;
     t.string  &quot;crypted_password&quot;
-    t.text    &quot;public_key&quot;
   end
 
   add_index &quot;users&quot;, [&quot;token&quot;], :name =&gt; &quot;index_users_on_token&quot;</diff>
      <filename>db/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,17 +26,13 @@ namespace :warehouse do
     require 'set'
     require 'logger'
     require 'yaml'
+    require 'config/initializers/svn'
     require 'lib/cache_key'
-    $LOAD_PATH &lt;&lt; 'vendor/ruby-sequel/lib' &lt;&lt; 'vendor/metaid-1.0' &lt;&lt; 'vendor/mailfactory-1.2.3/lib' &lt;&lt; 'vendor/silo/lib'
-    require 'silo'
+    $LOAD_PATH &lt;&lt; 'vendor/ruby-sequel/lib' &lt;&lt; 'vendor/metaid-1.0' &lt;&lt; 'vendor/mailfactory-1.2.3/lib'
     require 'lib/warehouse'
     require 'config/initializers/warehouse'
-    require 'lib/warehouse/svn_access_builder'
     require 'lib/warehouse/mailer'
     require 'lib/warehouse/command'
-    require 'lib/warehouse/syncer/base'
-    require 'lib/warehouse/syncer/svn_syncer'
-    require 'lib/warehouse/syncer/git_syncer'
     require 'lib/warehouse/extension'
     require 'lib/warehouse/hooks'
     require 'lib/warehouse/hooks/base'
@@ -54,14 +50,9 @@ namespace :warehouse do
     Warehouse::Command.logger ||= Logger.new(ENV['LOGGER'] || STDOUT) unless ENV['LOGGER'] == 'none'
     Warehouse::Command.logger.level = Logger.const_get((ENV['LOG_LEVEL'] || 'INFO').upcase) if Warehouse::Command.logger
     @command = Warehouse::Command.new(config)
-    begin
-      require 'ruby-debug'
-      Debugger.start
-    rescue LoadError
-    end if ENV[&quot;DEBUG&quot;]
   end
 
-  task :post_commit do
+  task :post_commit =&gt; :init do
     ENV['REPO'] ||= ENV['REPO_PATH'].split('/').last if ENV['REPO_PATH']
     Rake::Task['warehouse:sync'].invoke
     Warehouse::Hooks.discover
@@ -79,10 +70,7 @@ namespace :warehouse do
   task :build_user_htpasswd =&gt; :init do
     raise &quot;Need htpasswd config path with :repo variable.  CONFIG=/svn/:repo/.htaccess&quot; unless ENV['CONFIG'].to_s[/:repo/]
     raise &quot;Need single user id. USER=234&quot; unless ENV['USER']
-    repos = @command.repos_from_user(:id =&gt; ENV['USER']).to_a
-    repos.each do |repo|
-      @command.write_repo_users_to_htpasswd repo, ENV['CONFIG']
-    end
+    @command.write_repo_users_to_htpasswd @command.repos_from_user(:id =&gt; user), ENV['CONFIG']
   end
   
   # CONFIG</diff>
      <filename>lib/tasks/importer.rake</filename>
    </modified>
    <modified>
      <diff>@@ -118,7 +118,7 @@ module Warehouse
   self.default_session_options ||= {:session_key =&gt; '_warehouse_session_id', :secret =&gt; '4b3eaf64bfa62da140e0f45c9030f272'}
   self.domain                  ||= ''
   self.forum_url               ||= &quot;http://forum.activereload.net/licenses/%s/installs&quot;
-  self.version                 ||= Version.new(1, 1, 7)
+  self.version                 ||= Version.new(1, 1, 6)
   self.smtp_settings           ||= self.sendmail_settings ||= {}
   self.authentication_scheme   ||= 'basic' # plain / md5
   self.authentication_realm    ||= ''</diff>
      <filename>lib/warehouse.rb</filename>
    </modified>
    <modified>
      <diff>@@ -48,12 +48,36 @@ module Warehouse
         puts &quot;no repository found for the '#{repo_subdomain}' subdomain&quot;, :warn
         return
       end
-      unless silo_for(repo)
+      unless backend_for(repo)
         puts &quot;No SVN repository found for '#{repo[:subdomain]}' in '#{repo[:path]}'&quot;, :warn
         return
       end
 
-      Warehouse::Syncer.const_get(repo[:scm_type].capitalize + &quot;Syncer&quot;).process(connection, repo, silo_for(repo), num)
+      revisions = paginated_revisions(repo, num)
+      connection.transaction do
+        authors = {}
+        puts &quot;Syncing Revisions ##{revisions.first} - ##{revisions.last}&quot;, :debug
+        
+        revisions.each do |rev|
+          if rev &gt; 1 &amp;&amp; rev % 100 == 0
+            connection.execute &quot;COMMIT&quot;
+            connection.execute &quot;BEGIN&quot;
+            puts &quot;##{rev}&quot;, :debug
+          end
+          changeset = create_changeset(repo, rev)
+          authors[changeset[:author]] = Time.now.utc
+        end
+        users = connection[:users].where(:login =&gt; authors.keys).inject({}) do |memo, user|
+          memo.update(user[:login] =&gt; user[:id])
+        end
+        
+        authors.each do |login, changed_at|
+          next unless users[login]
+          update_user_activity repo, {:id =&gt; users[login], :login =&gt; login}, changed_at
+        end
+        CacheKey.sweep_cache
+        puts revisions.last, :raw
+      end unless revisions.empty?
     end
     
     def process_hooks_for(repo_subdomain, repo_path, revision)
@@ -101,7 +125,26 @@ module Warehouse
       users = indexed_users_from(permissions.values.collect { |index| index.values }.flatten)
       
       open config_path, 'w' do |file|
-        file.write SvnAccessBuilder.new(repositories, permissions, users).render
+        repositories.each do |repo|
+          perms_hash = permissions[repo[:id].to_s]
+          next if perms_hash.nil?
+          perms_hash.each do |path, perms|
+            file.write(&quot;[%s:/%s]\n&quot; % [base_path(repo[:path]), path])
+            perms.each do |p|
+              if p[:user_id].nil?
+                file.write('*')
+              else
+                login = users[p[:user_id].to_s][:login] rescue nil
+                next if login.nil? || login.size == 0
+                file.write(login)
+              end
+              file.write(' = r')
+              file.write('w') if p[:full_access].to_i == 1
+              file.write(&quot;\n&quot;)
+            end
+            file.write(&quot;\n&quot;)
+          end
+        end
       end
       puts &quot;Wrote access config file to '#{config_path}'&quot;
     end
@@ -132,97 +175,174 @@ module Warehouse
     end
     
     def clear_changesets_for(repo_subdomain)
-      repo = repo_subdomain &amp;&amp; find_repo(repo_subdomain)
+      repo = repo_subdomain &amp;&amp; connection[:repositories].where(:subdomain =&gt; repo_subdomain).first
       if repo_subdomain &amp;&amp; repo.nil?
         puts &quot;No repo(s) found, REPO=#{repo_subdomain.inspect} given.&quot;
         return
       end
       changesets = connection[:changesets]
       changes    = connection[:changes]
-      repos      = connection[:repositories]
       if repo
-        changesets = changesets.where(:repository_id =&gt; repo[:id]) 
+        changesets = changesets.where(:repository_id =&gt; repo) 
         changes    = changes.where(:changeset_id =&gt; changesets.select(:id))
       end
-      connection.transaction do
-        [changes, changesets].each { |ds| ds.delete }
-        (repo || repos).update :synced_changed_at =&gt; nil, :synced_revision =&gt; nil, :changesets_count =&gt; 0
-      end
+      connection.transaction { [changes, changesets].each { |ds| ds.delete } }
       puts repo ? &quot;All revisions for #{repo[:name].inspect} were cleared.&quot; : &quot;All revisions for all repositories were cleared&quot;
     end
-      
-    def repos_from_user(user)
-      user = connection[:users][:id =&gt; user] unless user.is_a?(Hash)
-      repository_ids = connection[:permissions].select(:repository_id).where(:user_id =&gt; user[:id]).uniq
-      connection[:repositories].where :id =&gt; repository_ids
-    end
     
-  protected
-    def find_repo(value)
-      case value
-        when Hash, Sequel::Dataset, NilClass then value
-        else
-          key   = value.to_i &gt; 0 ? :id : :subdomain
-          connection[:repositories][key =&gt; value]
+    protected
+      def find_repo(value)
+        return nil if value.nil?
+        return value if value.is_a?(Hash) || value.is_a?(Sequel::Dataset)
+        key   = value.to_i &gt; 0 ? :id : :subdomain
+        connection[:repositories][key =&gt; value]
       end
-    end
-    
-    def latest_revision_for(repo)
-      silo = silo_for(repo)
-      silo &amp;&amp; silo.latest_revision
-    end
-    
-    def silo_for(repo)
-      (@silos ||= {})[repo[:path]] ||= Silo::Repository.new(repo[:scm_type], :path =&gt; repo[:path])
-    end
-    
-    def hooks_for(repo)
-      connection[:hooks].where(:repository_id =&gt; repo[:id], :active =&gt; true).order(:name)
-    end
     
-    def indexed_hooks(hooks)
-      hooks.inject [] do |memo, hook|
-        memo &lt;&lt; [Warehouse::Hooks[hook[:name]], YAML.load(hook[:options])]
+      def paginated_revisions(repo, num)
+        revisions = (recorded_revision_for(repo)..latest_revision_for(repo)).to_a
+        num &gt; 0 ? revisions[0..num-1] : revisions
       end
-    end
-    
-    def grouped_permissions_for(repositories)
-      connection[:permissions].where(:active =&gt; 1, :repository_id =&gt; repositories.map { |r| r[:id] }).inject({}) do |memo, perm|
-        (memo[perm[:repository_id].to_s] ||= []) &lt;&lt; perm; memo
+
+      def recorded_revision_for(repo)
+        changeset = connection[:changesets].where(:repository_id =&gt; repo[:id]).reverse_order(:changed_at).first
+        @recorded_revision = (changeset ? changeset[:revision] : 0).to_i + 1
+      end
+
+      def latest_revision_for(repo)
+        backend = backend_for(repo)
+        backend &amp;&amp; backend.youngest_rev
       end
-    end
     
-    def grouped_permission_paths_for(repositories)
-      permissions = grouped_permissions_for(repositories)
-      permissions.each do |repo_id, perms|
-        permissions[repo_id] = perms.inject({}) do |memo, p|
-          (memo[p[:path]] ||= []) &lt;&lt; p; memo
+      def backend_for(repo)
+        (@backends ||= {})[repo[:path]] ||= Svn::Repos.open(repo[:path])
+      rescue Svn::Error
+        nil
+      end
+
+      def update_user_activity(repo, user, changed_at)
+        changesets_count = connection[:changesets].where(:repository_id =&gt; repo[:id], :author =&gt; user[:login]).select(:id.COUNT)
+        connection[:permissions].where(:user_id =&gt; user[:id], :repository_id =&gt; repo[:id]).update \
+              :last_changed_at =&gt; changed_at, :changesets_count =&gt; changesets_count
+      end
+      
+      def create_changeset(repo, revision)
+        backend = backend_for(repo)
+        changeset = { 
+          :repository_id =&gt; repo[:id],
+          :revision      =&gt; revision,
+          :author        =&gt; backend.fs.prop(Svn::Core::PROP_REVISION_AUTHOR, revision),
+          :message       =&gt; backend.fs.prop(Svn::Core::PROP_REVISION_LOG,    revision),
+          :changed_at    =&gt; backend.fs.prop(Svn::Core::PROP_REVISION_DATE,   revision).utc}
+        changeset_id   = connection[:changesets] &lt;&lt; changeset
+        changes = {:all =&gt; [], :diffable =&gt; []}
+        create_change_from_changeset(backend, changeset.update(:id =&gt; changeset_id), changes)
+        connection[:changesets].filter(:id =&gt; changeset_id).update(:diffable =&gt; 1) if changes[:diffable].size &gt; 0
+        changeset
+      end
+      
+      def create_change_from_changeset(backend, changeset, changes)
+        root           = backend.fs.root(changeset[:revision].to_i)
+        base_root      = backend.fs.root(changeset[:revision].to_i-1)
+        changed_editor = Svn::Delta::ChangedEditor.new(root, base_root)
+        base_root.dir_delta('', '', root, '', changed_editor)
+
+        (changed_editor.added_dirs + changed_editor.added_files).each do |path|
+          process_change_path_and_save(backend, changeset, 'A', path, changes)
+        end
+        
+        (changed_editor.updated_dirs + changed_editor.updated_files).each do |path|
+          process_change_path_and_save(backend, changeset, 'M', path, changes)
+        end
+        
+        deleted_files = changed_editor.deleted_dirs + changed_editor.deleted_files
+        moved_files, copied_files  = (changed_editor.copied_dirs  + changed_editor.copied_files).partition do |path|
+          deleted_files.delete(path[1])
+        end
+        
+        moved_files.each do |path|
+          process_change_path_and_save(backend, changeset, 'MV', path, changes)
+        end
+        
+        copied_files.each do |path|
+          process_change_path_and_save(backend, changeset, 'CP', path, changes)
+        end
+        
+        deleted_files.each do |path|
+          process_change_path_and_save(backend, changeset, 'D', path, changes)
         end
       end
-      permissions
-    end
-    
-    def indexed_users_from(permissions)
-      (permissions.any? ? connection[:users].where(:id =&gt; permissions.map { |p| p[:user_id] }) : []).inject({}) do |memo, user|
-        memo.update user[:id].to_s =&gt; user
+      
+      @@extra_change_names = Set.new(%w(MV CP))
+      @@undiffable_change_names = Set.new(%w(D))
+      def process_change_path_and_save(backend, changeset, name, path, changes)
+        change = {:changeset_id =&gt; changeset[:id], :name =&gt; name, :path =&gt; path}
+        if @@extra_change_names.include?(name)
+          change[:path]          = path[0]
+          change[:from_path]     = path[1]
+          change[:from_revision] = path[2]
+        end
+        unless @@undiffable_change_names.include?(change[:name]) || changeset[:diffable] == 1
+          root          = backend.fs.root(changeset[:revision])
+          mime_type     = root.check_path(change[:path]) == Svn::Core::NODE_DIR ? nil : root.node_prop(change[:path], Svn::Core::PROP_MIME_TYPE)
+          changes[:diffable] &lt;&lt; change unless mime_type == 'application/octet-stream'
+        end
+        changes[:all] &lt;&lt; change
+        connection[:changes] &lt;&lt; change
+      end
+
+      def hooks_for(repo)
+        connection[:hooks].where(:repository_id =&gt; repo[:id], :active =&gt; true).order(:name)
       end
-    end
-    
-    def users_from_repo(repo)
-      user_ids = connection[:permissions].select(:user_id).where(:active =&gt; 1, :repository_id =&gt; repo[:id]).uniq
-      connection[:users].where(:id =&gt; user_ids)
-    end
-    
-    def base_path(path)
-      path.to_s.split(&quot;/&quot;).last.to_s
-    end
     
-    def puts(str, level = :info)
-      if level == :raw
-        super(str)
-      else
-        self.class.logger &amp;&amp; self.class.logger.send(level, str)
+      def indexed_hooks(hooks)
+        hooks.inject [] do |memo, hook|
+          memo &lt;&lt; [Warehouse::Hooks[hook[:name]], YAML.load(hook[:options])]
+        end
+      end
+
+      def grouped_permissions_for(repositories)
+        connection[:permissions].where(:active =&gt; 1, :repository_id =&gt; repositories.map { |r| r[:id] }).inject({}) do |memo, perm|
+          (memo[perm[:repository_id].to_s] ||= []) &lt;&lt; perm; memo
+        end
+      end
+      
+      def grouped_permission_paths_for(repositories)
+        permissions = grouped_permissions_for(repositories)
+        permissions.each do |repo_id, perms|
+          permissions[repo_id] = perms.inject({}) do |memo, p|
+            (memo[p[:path]] ||= []) &lt;&lt; p; memo
+          end
+        end
+        permissions
+      end
+      
+      def indexed_users_from(permissions)
+        (permissions.any? ? connection[:users].where(:id =&gt; permissions.map { |p| p[:user_id] }) : []).inject({}) do |memo, user|
+          memo.update user[:id].to_s =&gt; user
+        end
+      end
+      
+      def repos_from_user(user)
+        user = connection[:users][:id =&gt; user] unless user.is_a?(Hash)
+        repository_ids = connection[:permissions].select(:repository_id).where(:user_id =&gt; user[:id]).uniq
+        connection[:repositories].where :id =&gt; repository_ids
+      end
+      
+      def users_from_repo(repo)
+        user_ids = connection[:permissions].select(:user_id).where(:active =&gt; 1, :repository_id =&gt; repo[:id]).uniq
+        connection[:users].where(:id =&gt; user_ids)
+      end
+      
+      def base_path(path)
+        path.to_s.split(&quot;/&quot;).last.to_s
+      end
+      
+      def puts(str, level = :info)
+        if level == :raw
+          super(str)
+        else
+          self.class.logger &amp;&amp; self.class.logger.send(level, str)
+        end
       end
-    end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/warehouse/command.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ body {
   margin: 0;
   text-align: center;
   padding: 0;
-  font: normal 12px/1.5em &quot;Helvetica Neue&quot;, Helvetica, &quot;Lucida Grande&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;
+  font: normal 12px/1.5em &quot;Lucida Grande&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;
   background: #ebebeb;
   color: #333;
   min-width: 900px;
@@ -270,7 +270,7 @@ li#admin a {
 
 .block h3 a {
   color: #333;
-  text-shadow: 1px 1px #f7f7f7;
+  text-shadow: 2px 2px #f7f7f7;
 }
 
 /* @end */
@@ -307,7 +307,7 @@ li#admin a {
   background: url(../images/app/icons/box-small.png) 0 50% no-repeat;
   padding: 8px 5px 8px 20px;
   color: #333;
-  text-shadow: 1px 1px #fff;
+  text-shadow: 2px 2px #fff;
   display: block;
   border-bottom: 1px solid #ccc;
   border-top: 1px solid #fff;
@@ -576,7 +576,7 @@ div#crumbs ul  {
 }
 
 #crumbs li a {
-  text-shadow: 1px 1px #fff;
+  text-shadow: 2px 2px #fff;
   background: url(../images/app/crumb-divide.gif) top right no-repeat;
   display: block;
   color: #555;
@@ -597,7 +597,7 @@ li.crumb-divide-last a {
  color: #fff;
  font-size: 92%;
  float: left;
- text-shadow: 1px 1px #777;
+ text-shadow: 2px 2px #777;
  background: url(../images/app/crumb-current.gif) repeat-x;
  padding: 4px 10px 7px 10px;
  border-right: 1px solid #999;
@@ -665,7 +665,7 @@ div p.rcontrols {
 
 .cs-meta .change-number a {
   color: #481;
-  text-shadow: 1px 1px #f7f7f7;
+  text-shadow: 2px 2px #f7f7f7;
   float: none;
   padding-right: 0;
   margin-top: 3px;
@@ -718,7 +718,7 @@ li.prev a {
   border-bottom-color: #ccc;
   border-right-color: #ccc;
   font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;
-  font-size: 110%;
+  font-size: 120%;
   font-weight: bold;
 }
 
@@ -740,6 +740,7 @@ li.prev a {
 .changeset .timenauthor {
   color: #888;
   font-weight: normal;
+  font-size: 92%;
   display: block;
 }
 
@@ -844,7 +845,7 @@ a.csdiff {
   font-size: 92%;
   font-weight: bold;
   color: #333;
-  text-shadow: 1px 1px #eee;
+  text-shadow: 2px 2px #eee;
   display: block;
   padding-left: 20px;
   background: url(../images/app/icons/arrow-small.png) 0 50% no-repeat;
@@ -936,7 +937,7 @@ ul.formats li a {
   display: block;
   padding: 3px 5px 4px 5px;
   color: #777;
-  text-shadow: 1px 1px #fff;
+  text-shadow: 2px 2px #fff;
   font-weight: bold;
 }
 
@@ -1038,7 +1039,7 @@ li#nmembers  a { background: url(../images/app/icons/members.png) 50% 0 no-repea
 
 #admin-nav li.selected {
   background: url(../images/app/nav-selected.png) bottom left no-repeat;
-  text-shadow: 1px 1px #eee;
+  text-shadow: 2px 2px #eee;
 }
 
 #admin-nav li.selected a {
@@ -1066,7 +1067,7 @@ li#nmembers  a { background: url(../images/app/icons/members.png) 50% 0 no-repea
   color: #555;
   font-weight: bold;
   text-align: center;
-  text-shadow: 1px 1px #f7f7f7;
+  text-shadow: 2px 2px #f7f7f7;
 }
 
 #second-nav li a:hover {
@@ -1236,7 +1237,7 @@ input.path {
 
 .sync-percent {
   color: #333;
-  text-shadow: 1px 1px #fff;
+  text-shadow: 2px 2px #fff;
   font-weight: bold;
   float: right;
 }
@@ -1391,7 +1392,7 @@ input.path {
 
 .overlay-form h2 {
   margin-right: 8px;
-  text-shadow: 1px 1px #fff;
+  text-shadow: 2px 2px #fff;
   border-bottom: 1px solid #bbb;
   padding: 10px;
 }
@@ -1409,7 +1410,7 @@ div.oform p label {
   font-weight: bold;
   margin-top:  10px;
   padding: 5px 0;
-  text-shadow: 1px 1px #fff;
+  text-shadow: 2px 2px #fff;
 }
 
 .oform p {
@@ -1538,20 +1539,6 @@ button {
   display: none;
 }
 
-#changesets li.changeset {
-  background: none;
-  border: none;
-  border-bottom: 1px solid #ccc;
-}
-
-#changesets .cs-log {
-  background: none;
-}
-
-#changesets .cs-meta {
-  background: none;
-  border-right: none;
-}
 /* @end */
 
 /* @group Command Line */</diff>
      <filename>public/stylesheets/main.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,49 +1,67 @@
 require File.dirname(__FILE__) + '/../test_helper'
 Warehouse::Command.configure(ActiveRecord::Base.configurations['test'].symbolize_keys)
 
-Warehouse::Syncer::SvnSyncer.send :attr_writer, :num
-Warehouse::Syncer::SvnSyncer.send :public, :num=
-
 context &quot;Command Syncing&quot; do
   setup do
-    @node       = stub(:text? =&gt; true, :revision =&gt; 5)
-    @silo       = stub(:fs =&gt; stub, :latest_revision =&gt; 50, :node_at =&gt; @node)
-    @command    = Warehouse::Command.new
-    @changes    = []
-    @connection = {:changes =&gt; @changes}
-    @command.stubs(:connection).returns(@connection)
-    @repo = {:id =&gt; 1, :scm_type =&gt; 'svn', :changesets_count =&gt; 0}
+    @backend = stub(:fs =&gt; stub) 
+    @command = Warehouse::Command.new
+    @changes = []
+    @command.stubs(:connection).returns(:changes =&gt; @changes)
+    @repo = {:id =&gt; 1}
     @changeset = {:id =&gt; 7, :revision =&gt; 5, :repository_id =&gt; @repo[:id], :author =&gt; 'rick', :message =&gt; 'brb going to moon', :changed_at =&gt; (Time.now - 300).utc}
     @user = {:id =&gt; 6, :login =&gt; 'justin'}
-    @command.stubs(:silo_for).with(@repo).returns(@silo)
-    @syncer = Warehouse::Syncer::SvnSyncer.new(@command.connection, @repo, @silo, 1)
+    @command.stubs(:backend_for).with(@repo).returns(@backend)
   end
 
   specify &quot;should sync revisions&quot; do
-    changesets = [@changeset.merge(:revision =&gt; 4)]
-    @connection.update \
-      :users =&gt; stub(:where =&gt; [@user.merge(:login =&gt; @changeset[:author])]), :repositories =&gt; stub(:where =&gt; @repo),
-      :changesets =&gt; stub(:where =&gt; stub(:order =&gt; changesets))
+    Time.expects(:now).returns(@changeset[:changed_at].localtime)
+    @connection = {:users =&gt; stub(:where =&gt; [@user.merge(:login =&gt; @changeset[:author])])}
     @connection.expects(:transaction).yields
-    @syncer.expects(:create_changeset).with(@changeset[:revision]).returns(@changeset)
-    @syncer.expects(:update_user_activity).with({:id =&gt; @user[:id], :login =&gt; @changeset[:author]}, @changeset[:changed_at])
-    Warehouse::Syncer::SvnSyncer.expects(:new).with(@connection, @repo, @silo, 1).returns(@syncer)
+    @command.stubs(:connection).returns(@connection)
+    @command.expects(:paginated_revisions).with(@repo, 1).returns([@changeset[:revision]])
+    @command.expects(:create_changeset).with(@repo, @changeset[:revision]).returns(@changeset)
+    @command.expects(:update_user_activity).with(@repo, {:id =&gt; @user[:id], :login =&gt; @changeset[:author]}, @changeset[:changed_at])
     @command.send(:sync_revisions_for, @repo, 1)
-    @repo[:changesets_count].should == 1
   end
 
   specify &quot;should skip syncing if there are no revisions to sync&quot; do
-    @silo.stubs(:latest_revision).returns(5)
-    changesets = [@changeset]
-    @connection.update :changesets =&gt; stub(:where =&gt; stub(:order =&gt; changesets))
-    @command.connection.expects(:transaction)
-    @syncer.expects(:create_changeset).times(0)
-    Warehouse::Syncer::SvnSyncer.expects(:new).with(@connection, @repo, @silo, 1).returns(@syncer)
-    @command.sync_revisions_for(@repo, 1)
+    @command.connection.expects(:transaction).times(0)
+    @command.expects(:paginated_revisions).with(@repo, 23).returns([])
+    @command.sync_revisions_for(@repo, 23)
+  end
+
+  specify &quot;should paginate revisions&quot; do
+    @command.expects(:recorded_revision_for).with(@repo).returns 75
+    @command.expects(:latest_revision_for).with(@repo).returns 100
+    @command.send(:paginated_revisions, @repo, 5).should == (75..79).to_a
+  end
+  
+  specify &quot;should list all revisions&quot; do
+    @command.expects(:recorded_revision_for).with(@repo).returns 75
+    @command.expects(:latest_revision_for).with(@repo).returns 100
+    @command.send(:paginated_revisions, @repo, 0).should == (75..100).to_a
+  end
+
+  specify &quot;should get recorded revision&quot; do
+    @changesets_where = stub
+    @changesets_where.expects(:reverse_order).with(:changed_at).returns(stub(:first =&gt; {:revision =&gt; 1}))
+    @changesets = stub
+    @changesets.expects(:where).with(:repository_id =&gt; @repo[:id]).returns(@changesets_where)
+    @command.expects(:connection).returns(:changesets =&gt; @changesets)
+    @command.send(:recorded_revision_for, @repo).should == 2
+  end
+
+  specify &quot;should get initial revision&quot; do
+    @changesets_where = stub
+    @changesets_where.expects(:reverse_order).with(:changed_at).returns(stub(:first =&gt; nil))
+    @changesets = stub
+    @changesets.expects(:where).with(:repository_id =&gt; @repo[:id]).returns(@changesets_where)
+    @command.expects(:connection).returns(:changesets =&gt; @changesets)
+    @command.send(:recorded_revision_for, @repo).should == 1
   end
 
   specify &quot;should get latest revision&quot; do
-    @silo.expects(:latest_revision).returns(75)
+    @backend.expects(:youngest_rev).returns(75)
     @command.send(:latest_revision_for, @repo).should == 75
   end
   
@@ -58,64 +76,76 @@ context &quot;Command Syncing&quot; do
     @permissions = stub
     @permissions.expects(:where).with(:user_id =&gt; @user[:id], :repository_id =&gt; @repo[:id]).returns(@permissions_where)
     
-    @connection.update(:permissions =&gt; @permissions, :changesets =&gt; @changesets)
-    @syncer.send(:update_user_activity, @user, @changeset[:changed_at]).should == 77
+    @command.stubs(:connection).returns(:permissions =&gt; @permissions, :changesets =&gt; @changesets)
+    @command.send(:update_user_activity, @repo, @user, @changeset[:changed_at]).should == 77
   end
   
   specify &quot;should create changeset from revision&quot; do
     @changesets = stub
     @changesets.expects(:&lt;&lt;).returns(@changeset[:id])
-    @connection.update(:changesets =&gt; @changesets)
-    @node.expects(:author).returns(@changeset[:author])
-    @node.expects(:message).returns(@changeset[:message])
-    @node.expects(:changed_at).returns(@changeset[:changed_at].localtime)
-    @syncer.expects(:create_change_from_changeset).with(@node, @changeset, {:all =&gt; [], :diffable =&gt; false})
+    @command.stubs(:connection).returns(:changesets =&gt; @changesets)
+    @command.expects(:backend_for).with(@repo).returns(@backend)
+    @backend.fs.expects(:prop).with(Svn::Core::PROP_REVISION_AUTHOR, 5).returns(@changeset[:author])
+    @backend.fs.expects(:prop).with(Svn::Core::PROP_REVISION_LOG,    5).returns(@changeset[:message])
+    @backend.fs.expects(:prop).with(Svn::Core::PROP_REVISION_DATE,   5).returns(@changeset[:changed_at].localtime)
+    @command.expects(:create_change_from_changeset).with(@backend, @changeset, {:all =&gt; [], :diffable =&gt; []})
     
-    @syncer.send(:create_changeset, @changeset[:revision]).should == @changeset
+    @command.send(:create_changeset, @repo, @changeset[:revision]).should == @changeset
   end
   
   %w(A D M MVP).each do |name|
     specify &quot;should create change with #{name}&quot; do
       @changes.clear
-      @syncer.send(:process_change_path_and_save, @node, &quot;/foo&quot;, {:id =&gt; 1, :revision =&gt; 5, :diffable =&gt; 1}, name, {:all =&gt; []})
-      @changes.should == [{:changeset_id =&gt; 1, :name =&gt; name, :path =&gt; &quot;/foo&quot;, :diffable =&gt; true}]
+      @command.send(:process_change_path_and_save, @backend, {:id =&gt; 1, :revision =&gt; 5, :diffable =&gt; 1}, name, &quot;/foo&quot;, {:all =&gt; []})
+      @changes.should == [{:changeset_id =&gt; 1, :name =&gt; name, :path =&gt; &quot;/foo&quot;}]
     end
   end
   
   %w(MV CP).each do |change_type|
     specify &quot;should create change with #{change_type}&quot; do
       @changes.clear
-      @syncer.send(:process_change_path_and_save, @node, [1,2,3], {:id =&gt; 1, :revision =&gt; 5, :diffable =&gt; 1}, change_type, {:all =&gt; []})
-      @changes.should == [{:changeset_id =&gt; 1, :name =&gt; change_type, :path =&gt; 1, :from_path =&gt; 2, :from_revision =&gt; 3, :diffable =&gt; true}]
+      @command.send(:process_change_path_and_save, @backend, {:id =&gt; 1, :revision =&gt; 5, :diffable =&gt; 1}, change_type, [1,2,3], {:all =&gt; []})
+      @changes.should == [{:changeset_id =&gt; 1, :name =&gt; change_type, :path =&gt; 1, :from_path =&gt; 2, :from_revision =&gt; 3}]
     end
   end
   
   specify &quot;should process changeset changes&quot; do
-    @node.stubs(:added_files).returns(%w(/foo /foo/bar.txt))
-    @node.stubs(:updated_files).returns(%w(/foo /foo/bar.txt))
-    @node.stubs(:deleted_files).returns(%w(/copied /deleted /copied/file /deleted/file))
-    @node.stubs(:copied_files).returns([%w(a /copied b), %w(a /original b), %w(a /copied/file b), %w(a /original/file b)])
+    @root           = stub
+    @base_root      = stub
+    @changed_editor = stub
+    @backend.fs.stubs(:root).with(5).returns(@root)
+    @backend.fs.stubs(:root).with(4).returns(@base_root)
+    Svn::Delta::ChangedEditor.stubs(:new).with(@root, @base_root).returns(@changed_editor)
+    @changed_editor.stubs(:added_dirs).returns(['/foo'])
+    @changed_editor.stubs(:added_files).returns(['/foo/bar.txt'])
+    @changed_editor.stubs(:updated_dirs).returns(['/foo'])
+    @changed_editor.stubs(:updated_files).returns(['/foo/bar.txt'])
+    @changed_editor.stubs(:deleted_dirs).returns(['/copied', '/deleted'])
+    @changed_editor.stubs(:deleted_files).returns(['/copied/file', '/deleted/file'])
+    @changed_editor.stubs(:copied_dirs).returns([%w(a /copied b), %w(a /original b)])
+    @changed_editor.stubs(:copied_files).returns([%w(a /copied/file b), %w(a /original/file b)])
     
-    @changes = {:all =&gt; [], :diffable =&gt; false}
+    @changes = {:all =&gt; []}
     
-    @syncer.expects(:process_change_path_and_save).with(@node, '/foo', @changeset, 'A', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, '/foo/bar.txt', @changeset, 'A', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, '/foo', @changeset, 'M', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, '/foo/bar.txt', @changeset, 'M', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, '/deleted', @changeset, 'D', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, '/deleted/file', @changeset, 'D', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, %w(a /copied b), @changeset, 'MV', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, %w(a /copied/file b), @changeset, 'MV', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, %w(a /original b), @changeset, 'CP', @changes)
-    @syncer.expects(:process_change_path_and_save).with(@node, %w(a /original/file b), @changeset, 'CP', @changes)
+    @base_root.expects :dir_delta
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'A',  '/foo', @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'A',  '/foo/bar.txt', @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'M',  '/foo', @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'M',  '/foo/bar.txt', @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'D',  '/deleted', @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'D',  '/deleted/file', @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'MV', %w(a /copied b), @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'MV', %w(a /copied/file b), @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'CP', %w(a /original b), @changes)
+    @command.expects(:process_change_path_and_save).with(@backend, @changeset, 'CP', %w(a /original/file b), @changes)
     
-    @syncer.send(:create_change_from_changeset, @node, @changeset, @changes)
+    @command.send(:create_change_from_changeset, @backend, @changeset, @changes)
   end
 end
 
 context &quot;Command Clearing&quot; do
   setup do
-    @silo = stub(:fs =&gt; stub) 
+    @backend = stub(:fs =&gt; stub) 
     @command = Warehouse::Command.new
   end
   specify &quot;should fail early for bad repo subdomain&quot; do</diff>
      <filename>test/commands/sync_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,16 +3,8 @@ sample:
   name: Sample
   path: &lt;%= File.expand_path(File.dirname(__FILE__)) %&gt;/db/sample
   subdomain: sample
-  scm_type: svn
-  synced_changed_at: 2007-05-18 22:27:43
-  synced_revision: 2
-  changesets_count: 2
 example:
   id: 2
   name: Example
   path: &lt;%= File.expand_path(File.dirname(__FILE__)) %&gt;/db/example
-  subdomain: example
-  scm_type: svn
-  synced_changed_at: 2007-05-19 22:27:43
-  synced_revision: 2
-  changesets_count: 2
\ No newline at end of file
+  subdomain: example
\ No newline at end of file</diff>
      <filename>test/fixtures/repositories.yml</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ context &quot;Browser Controller Permissions&quot; do
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     @request.host = &quot;sample.test.host&quot;
-    Repository.any_instance.stubs(:silo).returns(true)
+    Repository.any_instance.stubs(:backend).returns(true)
     class &lt;&lt; @controller
       def status_message(type, message = nil, template = nil)
         render :text =&gt; &quot;#{type}: #{message.inspect}&quot;</diff>
      <filename>test/functional/browser_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ context &quot;Changesets Controller&quot; do
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     @request.host = &quot;sample.test.host&quot;
-    Repository.any_instance.stubs(:silo).returns(stub(:latest_revision =&gt; 0))
+    Repository.any_instance.stubs(:backend).returns(stub(:youngest_rev =&gt; 0))
   end
 
   specify &quot;should show 0 changesets for anonymous user&quot; do
@@ -79,7 +79,7 @@ context &quot;Changesets Controller on root domain&quot; do
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     @request.host = &quot;test.host&quot;
-    Repository.any_instance.stubs(:silo).returns(stub(:latest_revision =&gt; 0))
+    Repository.any_instance.stubs(:backend).returns(stub(:youngest_rev =&gt; 0))
   end
   
   specify &quot;should redirect anon users to public changesets&quot; do</diff>
      <filename>test/functional/changesets_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ context &quot;History Controller&quot; do
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     @request.host = &quot;sample.test.host&quot;
-    Repository.any_instance.stubs(:silo).returns(true)
+    Repository.any_instance.stubs(:backend).returns(true)
     @controller.stubs(:current_repository).returns(repositories(:sample))
     repositories(:sample).stubs(:public?).returns(false)
     repositories(:sample).expects(:node).with('').returns(stub_node)
@@ -41,7 +41,7 @@ context &quot;History Controller (permissions)&quot; do
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     @request.host = &quot;sample.test.host&quot;
-    Repository.any_instance.stubs(:silo).returns(true)
+    Repository.any_instance.stubs(:backend).returns(true)
     class &lt;&lt; @controller
       def status_message(type, message = nil)
         render :text =&gt; &quot;#{type}: #{message.inspect}&quot;</diff>
      <filename>test/functional/history_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -37,7 +37,6 @@ context &quot;Permissions Controller&quot; do
   end
 
   specify &quot;should grant new permission to repo&quot; do
-    Permission.destroy_all
     assert_difference &quot;Permission.count&quot; do
       assert_no_difference &quot;User.count&quot; do
         post :create, :permission =&gt; {:user_id =&gt; 2, :path =&gt; 'blah'}
@@ -45,8 +44,8 @@ context &quot;Permissions Controller&quot; do
       end
     end
     
-    p = repositories(:sample).permissions.find_by_user_id(2)
-    p.path.should == '/blah'
+    assigns(:permission).user.should.not.be.new_record
+    p = repositories(:sample).permissions.find_by_user_id(assigns(:permission).user.id)
     p.should.be.active
     p.should.not.be.admin
   end
@@ -59,7 +58,8 @@ context &quot;Permissions Controller&quot; do
       end
     end
     
-    perms = repositories(:sample).permissions.find_all_by_user_id(2).sort_by(&amp;:path)
+    assigns(:permission).user.should.not.be.new_record
+    perms = repositories(:sample).permissions.find_all_by_user_id(assigns(:permission).user.id).sort_by(&amp;:path)
     perms[0].should.be.active
     perms[0].should.not.be.admin
     perms[0].path.should == '/'</diff>
      <filename>test/functional/permissions_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -71,7 +71,6 @@ context &quot;Repositories Controller on root domain&quot; do
 
   specify &quot;should grant access to admin&quot; do
     login_as :rick
-    Repository.any_instance.stubs(:sync?).returns(false)
     get :index
     assert_template 'index'
     assigns(:repositories).size.should == 2
@@ -79,7 +78,6 @@ context &quot;Repositories Controller on root domain&quot; do
 
   specify &quot;should grant access to repository admin&quot; do
     User.any_instance.stubs(:admin?).returns(false)
-    Repository.any_instance.stubs(:sync?).returns(false)
     login_as :rick
     get :index
     assert_template 'index'</diff>
      <filename>test/functional/repositories_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -65,4 +65,4 @@ context &quot;Node finding revision&quot; do
       @node.check_revisions 5, nil
     end
   end
-end if false # node be gone!
\ No newline at end of file
+end
\ No newline at end of file</diff>
      <filename>test/unit/node_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -39,51 +39,53 @@ context &quot;Repository&quot; do
     r.subdomain.should == 'foo-bar'
   end
   
-  specify &quot;should ignore rm -rf stderr message in #sync_revisions&quot; do
-    repo = Repository.new
-    repo.expects(:execute_command).returns([nil, 'rm -rf /data/warehouse/releases/20070704061415/tmp/cache'])
-    repo.sync_revisions(5).should == [nil, '']
-  end
-end
-
-context &quot;Repository (svn)&quot; do
-  before do
-    @repo = Repository.new
-    @repo.extend Repository::SvnMethods
-  end
-
   specify &quot;should get initial revisions to sync&quot; do
-    @repo.expects(:latest_revision).returns(5)
-    @repo.revisions_to_sync.should == (1..5).to_a
+    r = Repository.new
+    r.expects(:backend).returns(true)
+    r.expects(:latest_changeset).returns(nil)
+    r.expects(:latest_revision).returns(5)
+    r.revisions_to_sync.should == (1..5)
   end
   
   specify &quot;should get new revisions to sync&quot; do
-    @repo.synced_revision = 3
-    @repo.expects(:latest_revision).times(2).returns(5)
-    @repo.revisions_to_sync.should == [4,5]
-    @repo.sync_progress.should == 60
+    repo = Repository.new
+    repo.expects(:backend).returns(stub(:youngest_rev =&gt; 5))
+    repo.expects(:latest_changeset).times(4).returns(stub(:revision =&gt; 3))
+    repo.expects(:latest_revision).times(2).returns(5)
+    repo.revisions_to_sync.to_a.should == [4,5]
+    repo.sync_progress.should == 60
   end
   
   specify &quot;should want to sync with revisions to sync&quot; do
-    @repo.stubs(:silo).returns(stub(:latest_revision =&gt; 5))
-    @repo.revisions_to_sync.should == [1,2,3,4,5]
-    @repo.should.be.sync
-    @repo.sync_progress.should == 0
+    repo = Repository.new
+    repo.stubs(:backend).returns(stub(:youngest_rev =&gt; 5))
+    repo.stubs(:synced_revision).returns(1)
+    repo.revisions_to_sync.to_a.should == [1,2,3,4,5]
+    repo.should.be.sync
+    repo.sync_progress.should == 0
   end
   
   specify &quot;should want to sync with 1 revision to sync&quot; do
-    @repo.synced_revision = 1
-    @repo.stubs(:silo).returns(stub(:latest_revision =&gt; 2))
-    @repo.revisions_to_sync.should == [2]
-    @repo.should.be.sync
-    @repo.sync_progress.should == 50
+    repo = Repository.new
+    repo.stubs(:backend).returns(stub(:youngest_rev =&gt; 1))
+    repo.stubs(:synced_revision).returns(1)
+    repo.revisions_to_sync.to_a.should == [1]
+    repo.should.be.sync
+    repo.sync_progress.should == 0
   end
   
   specify &quot;should not want to sync with no revisions to sync&quot; do
-    @repo.stubs(:silo).returns(stub(:latest_revision =&gt; 5))
-    @repo.synced_revision = 5
-    @repo.revisions_to_sync.should == []
-    @repo.should.not.be.sync
-    @repo.sync_progress.should == 100
+    repo = Repository.new
+    repo.stubs(:backend).returns(stub(:youngest_rev =&gt; 5))
+    repo.stubs(:synced_revision).returns(6)
+    repo.revisions_to_sync.to_a.should == []
+    repo.should.not.be.sync
+    repo.sync_progress.should == 100
+  end
+  
+  specify &quot;should ignore rm -rf stderr message in #sync_revisions&quot; do
+    repo = Repository.new
+    repo.expects(:execute_command).returns([nil, 'rm -rf /data/warehouse/releases/20070704061415/tmp/cache'])
+    repo.sync_revisions(5).should == [nil, '']
   end
 end
\ No newline at end of file</diff>
      <filename>test/unit/repository_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>app/models/repository/git_methods.rb</filename>
    </removed>
    <removed>
      <filename>app/models/repository/svn_methods.rb</filename>
    </removed>
    <removed>
      <filename>config/svn_access.erb</filename>
    </removed>
    <removed>
      <filename>config/svn_access.sample.erb</filename>
    </removed>
    <removed>
      <filename>db/migrate/029_add_scm_type_and_public_key.rb</filename>
    </removed>
    <removed>
      <filename>db/migrate/030_add_cached_repository_fields.rb</filename>
    </removed>
    <removed>
      <filename>db/migrate/031_add_diffable_to_changes.rb</filename>
    </removed>
    <removed>
      <filename>lib/warehouse/diff_renderer.rb</filename>
    </removed>
    <removed>
      <filename>lib/warehouse/svn_access_builder.rb</filename>
    </removed>
    <removed>
      <filename>lib/warehouse/syncer/base.rb</filename>
    </removed>
    <removed>
      <filename>lib/warehouse/syncer/git_syncer.rb</filename>
    </removed>
    <removed>
      <filename>lib/warehouse/syncer/svn_syncer.rb</filename>
    </removed>
    <removed>
      <filename>test/functional/changesets_helper_test.rb</filename>
    </removed>
    <removed>
      <filename>vendor/abstract-1.0.0/ChangeLog</filename>
    </removed>
    <removed>
      <filename>vendor/abstract-1.0.0/README.txt</filename>
    </removed>
    <removed>
      <filename>vendor/abstract-1.0.0/abstract.gemspec</filename>
    </removed>
    <removed>
      <filename>vendor/abstract-1.0.0/lib/abstract.rb</filename>
    </removed>
    <removed>
      <filename>vendor/abstract-1.0.0/setup.rb</filename>
    </removed>
    <removed>
      <filename>vendor/abstract-1.0.0/test/test.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/History.txt</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/License.txt</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/Manifest.txt</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/README.txt</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/Rakefile</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/config/hoe.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/config/requirements.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/doc/.gitignore</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff-display.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff/display/data_structure.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff/display/unified.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff/display/unified/generator.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff/display/version.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff/renderer/base.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/lib/diff/renderer/diff.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/script/destroy</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/script/generate</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/script/txt2html</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/setup.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/api_spec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/data_structure_spec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/big.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/multiple_adds_after_rem.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/multiple_rems_then_add.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/only_add.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/only_rem.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/pseudo_recursive.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/fixtures/simple.diff</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/generator_spec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/renderer/base_spec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/renderer/diff_spec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/spec.opts</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/spec_helper.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/spec/unified_spec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/tasks/deployment.rake</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/tasks/environment.rake</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/tasks/rspec.rake</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/tasks/website.rake</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/website/index.html</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/website/index.txt</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/website/javascripts/rounded_corners_lite.inc.js</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/website/stylesheets/screen.css</filename>
    </removed>
    <removed>
      <filename>vendor/diff-display/website/template.rhtml</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/CHANGES</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/MIT-LICENSE</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/README.txt</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/context.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/converter.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/ec.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/ejava.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/ejavascript.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/enhanced.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/eperl.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/ephp.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/eruby.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/escheme.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/engine/optimized.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/enhancer.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/error.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/evaluator.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/generator.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/helper.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/helpers/rails_helper.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/local-setting.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/main.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/lib/erubis/tiny.rb</filename>
    </removed>
    <removed>
      <filename>vendor/erubis-2.4.1/setup.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/README</filename>
    </removed>
    <removed>
      <filename>vendor/silo/Rakefile</filename>
    </removed>
    <removed>
      <filename>vendor/silo/lib/silo.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/lib/silo/adapters/git.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/lib/silo/adapters/mock.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/lib/silo/adapters/svn.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/lib/silo/node.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/lib/silo/repository.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/History.txt</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/Manifest.txt</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/README.txt</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/Rakefile</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/actor.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/blob.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/commit.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/diff.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/errors.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/git.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/head.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/lazy.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/repo.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/lib/grit/tree.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/blame</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/cat_file_blob</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/cat_file_blob_size</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/diff_2</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/diff_2f</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/diff_f</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/diff_i</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/diff_new_mode</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/diff_p</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/for_each_ref</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/ls_tree_a</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/ls_tree_b</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/rev_list</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/rev_list_count</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/rev_list_single</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/rev_parse</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/fixtures/show_empty_commit</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/helper.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/profile.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/suite.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_actor.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_blob.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_commit.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_diff.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_git.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_head.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_real.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_reality.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_repo.rb</filename>
    </removed>
    <removed>
      <filename>vendor/silo/vendor/grit/test/test_tree.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>8dbb6cb65d54091e5974ab0b1dcb8cccea26a062</id>
    </parent>
  </parents>
  <author>
    <name>rick</name>
    <email>rick@entp.com</email>
  </author>
  <url>http://github.com/entp/warehouse/commit/834395f71a6eb58cba6f6aa0779e6da79cbae4d1</url>
  <id>834395f71a6eb58cba6f6aa0779e6da79cbae4d1</id>
  <committed-date>2008-09-30T10:20:11-07:00</committed-date>
  <authored-date>2008-09-30T10:20:11-07:00</authored-date>
  <message>warehouse 1.1.6 release</message>
  <tree>554e5cc03dda0a8e758f03cae18d7bec85873734</tree>
  <committer>
    <name>rick</name>
    <email>rick@entp.com</email>
  </committer>
</commit>
