⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ra.rb

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 RB
字号:
require "English"require "tempfile"require "svn/error"require "svn/util"require "svn/core"require "svn/repos"require "svn/ext/ra"module Svn  module Ra    Util.set_constants(Ext::Ra, self)    Util.set_methods(Ext::Ra, self)    @@ra_pool = Svn::Core::Pool.new    Ra.initialize(@@ra_pool)    class << self      def modules        print_modules("")      end    end        Session = SWIG::TYPE_p_svn_ra_session_t    class Session      class << self        def open(url, config={}, callbacks=nil)          Ra.open2(url, callbacks, config)        end      end      def latest_revnum        Ra.get_latest_revnum(self)      end      def dated_revision(time)        Ra.get_dated_revision(self, time.to_apr_time)      end      def set_prop(name, value, rev=nil)        Ra.change_rev_prop(self, rev || latest_revnum, name, value)      end      def proplist(rev=nil)        Ra.rev_proplist(self, rev || latest_revnum)      end      def prop(name, rev=nil)        Ra.rev_prop(self, rev || latest_revnum, name)      end      def commit_editor(log_msg, lock_tokens={}, keep_lock=false)        callback = Proc.new do |new_revision, date, author|          date = Time.from_svn_format(date) if date          yield(new_revision, date, author)        end        editor, editor_baton = Ra.get_commit_editor(self, log_msg, callback,                                                    lock_tokens, keep_lock)        editor.baton = editor_baton        [editor, editor_baton]      end      def commit_editor2(log_msg, lock_tokens={}, keep_lock=false, &callback)        editor, editor_baton = Ra.get_commit_editor2(self, log_msg, callback,                                                     lock_tokens, keep_lock)        editor.baton = editor_baton        editor      end      def file(path, rev=nil)        output = StringIO.new        rev ||= latest_revnum        fetched_rev, props = Ra.get_file(self, path, rev, output)        output.rewind        props_filter(props)        [output.read, props]      end      def dir(path, rev=nil, fields=nil)        rev ||= latest_revnum        fields ||= Core::DIRENT_ALL        entries, fetched_rev, props = Ra.get_dir2(self, path, rev, fields)        props_filter(props)        [entries, props]      end      def update(revision_to_update_to, update_target,                 editor, editor_baton, recurse=true, &block)        editor.baton = editor_baton        update2(revision_to_update_to, update_target,                editor, recurse, &block)      end      def update2(revision_to_update_to, update_target, editor, recurse=true)        reporter, reporter_baton = Ra.do_update(self, revision_to_update_to,                                                update_target, recurse,                                                editor)        reporter.baton = reporter_baton        if block_given?          yield(reporter)          reporter.finish_report          nil        else          reporter        end      end      def switch(revision_to_switch_to, switch_target, switch_url,                 editor, editor_baton, recurse=true, &block)        editor.baton = editor_baton        switch2(revision_to_switch_to, switch_target, switch_url,                editor, recurse, &block)      end      def switch2(revision_to_switch_to, switch_target, switch_url,                  editor, recurse=true)        reporter, reporter_baton = Ra.do_switch(self, revision_to_switch_to,                                                switch_target, recurse,                                                switch_url, editor)        reporter.baton = reporter_baton        if block_given?          yield(reporter)          reporter.finish_report          nil        else          reporter        end      end      def status(revision, status_target, editor, editor_baton,                 recurse=true, &block)        editor.baton = editor_baton        status2(revision, status_target, editor, recurse, &block)      end      def status2(revision, status_target, editor, recurse=true)        reporter, reporter_baton = Ra.do_status(self, status_target,                                                revision, recurse, editor)        reporter.baton = reporter_baton        if block_given?          yield(reporter)          reporter.finish_report          nil        else          reporter        end      end      def diff(rev, target, versus_url, editor,               recurse=true, ignore_ancestry=true, text_deltas=true)        args = [self, rev, target, recurse, ignore_ancestry,                text_deltas, versus_url, editor]        reporter, baton = Ra.do_diff2(*args)        reporter.baton = baton        reporter      end      def log(paths, start_rev, end_rev, limit,              discover_changed_paths=true,              strict_node_history=false)        paths = [paths] unless paths.is_a?(Array)        receiver = Proc.new do |changed_paths, revision, author, date, message|          date = Time.parse_svn_format(date) if date          yield(changed_paths, revision, author, date, message)        end        Ra.get_log(self, paths, start_rev, end_rev, limit,                   discover_changed_paths, strict_node_history,                   receiver)      end      def check_path(path, rev=nil)        Ra.check_path(self, path, rev || latest_revnum)      end      def stat(path, rev=nil)        Ra.stat(self, path, rev || latest_revnum)      end      def uuid        Ra.uuid(self)      end      def repos_root        Ra.get_repos_root(self)      end      def locations(path, location_revisions, peg_revision=nil)        peg_revision ||= latest_revnum        Ra.get_locations(self, path, peg_revision, location_revisions)      end      def file_revs(path, start_rev, end_rev=nil)        end_rev ||= latest_revnum        revs = []        handler = Proc.new do |path, rev, rev_props, prop_diffs|          revs << [path, rev, rev_props, prop_diffs]          yield(path, rev, rev_props, prop_diffs) if block_given?        end        Ra.get_file_revs(self, path, start_rev, end_rev, handler)        revs      end      def lock(path_revs, comment=nil, steal_lock=false)        lock_func = Proc.new do |path, do_lock, lock, ra_err|          yield(path, do_lock, lock, ra_err)        end        Ra.lock(self, path_revs, comment, steal_lock, lock_func)      end      def unlock(path_tokens, break_lock=false, &lock_func)        Ra.unlock(self, path_tokens, break_lock, lock_func)      end      def get_lock(path)        Ra.get_lock(self, path)      end      def get_locks(path)        Ra.get_locks(self, path)      end      def replay(rev, low_water_mark, editor, send_deltas=true)        Ra.replay(self, rev, low_water_mark, send_deltas, editor)      end      def reparent(url)        Ra.reparent(self, url)      end      private      def props_filter(props)        date_str = props[Svn::Core::PROP_ENTRY_COMMITTED_DATE]        if date_str          date = Time.parse_svn_format(date_str)          props[Svn::Core::PROP_ENTRY_COMMITTED_DATE] = date        end        props      end    end    class Reporter2      attr_accessor :baton      def set_path(path, revision, start_empty=true, lock_token=nil)        Ra.reporter2_invoke_set_path(self, @baton, path, revision,                                     start_empty, lock_token)      end            def delete_path(path)        Ra.reporter2_invoke_set_path(self, @baton, path)      end            def link_path(path, url, revision, start_empty=true, lock_token=nil)        Ra.reporter2_invoke_link_path(self, @baton, path, url,                                      revision, start_empty, lock_token)      end      def finish_report        Ra.reporter2_invoke_finish_report(self, @baton)      end      def abort_report        Ra.reporter2_invoke_abort_report(self, @baton)      end          end    remove_const(:Callbacks)    class Callbacks      attr_accessor :auth_baton      def initialize(auth_baton)        @auth_baton = auth_baton      end      def open_tmp_file        tmp = Tempfile.new("Svn::Ra")        path = tmp.path        tmp.close(true)        path      end      def get_wc_prop(relpath, name)        nil      end      def set_wc_prop(path, name, value)      end      def push_wc_prop(path, name, value)      end      def invalidate_wc_props(path, name)      end      def progress_func(progress, total)      end    end  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -