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

📄 client.rb

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 RB
📖 第 1 页 / 共 2 页
字号:
      # the first block-argument, is +nil+.  Otherwise, it is a Hash      # containing simple information associated with the revision,      # whose keys are paths and values are changes, such as      # <tt>{path1 => change1, path2 => change2, ...}</tt>,      # where each path is an absolute one in the repository and each      # change is a instance of Svn::Core::LogChangedPath.      # The rest of the block arguments, +rev+, +author+, +date+, and      # +message+ are the revision number, author, date, and the log      # message of that revision, respectively.      def log(paths, start_rev, end_rev, limit,              discover_changed_paths, strict_node_history,              peg_rev=nil)        paths = [paths] unless paths.is_a?(Array)        receiver = Proc.new do |changed_paths, rev, author, date, message|          date = Time.from_svn_format(date) if date          yield(changed_paths, rev, author, date, message)        end        Client.log3(paths, peg_rev, start_rev, end_rev, limit,                    discover_changed_paths,                    strict_node_history,                    receiver, self)      end      # Returns log messages, for commits affecting +paths+ from +start_rev+      # to +end_rev+, as an Array of String.      # You can use URIs as well as paths as +paths+.      def log_message(paths, start_rev=nil, end_rev=nil)        start_rev ||= "HEAD"        end_rev ||= start_rev        messages = []        receiver = Proc.new do |changed_paths, rev, author, date, message|          messages << message        end        log(paths, start_rev, end_rev, 0, false, false) do |*args|          receiver.call(*args)        end        if !paths.is_a?(Array) and messages.size == 1          messages.first        else          messages        end      end      def blame(path_or_uri, start_rev=nil, end_rev=nil, peg_rev=nil,                diff_options=nil, ignore_mime_type=false)        start_rev ||= 1        end_rev ||= URI(path_or_uri).scheme ? "HEAD" : "BASE"        peg_rev ||= end_rev        diff_options ||= Svn::Core::DiffFileOptions.new        receiver = Proc.new do |line_no, revision, author, date, line|          date = Time.from_svn_format(date) if date          yield(line_no, revision, author, date, line)        end        Client.blame3(path_or_uri, peg_rev, start_rev,                      end_rev, diff_options, ignore_mime_type,                      receiver, self)      end      alias praise blame      alias annotate blame      alias ann annotate            # Returns a value of a revision property named +name+ for +uri+      # at +rev+, as a String.      # Both URLs and paths are avaiable as +uri+.      def revprop(name, uri, rev)        value, = revprop_get(name, uri, rev)        value      end      alias rp revprop            # Returns a value of a revision property named +name+ for +uri+      # at +rev+, as an Array such as <tt>[value, rev]</tt>.      # Both URLs and paths are avaiable as +uri+.      def revprop_get(name, uri, rev)        result = Client.revprop_get(name, uri, rev, self)        if result.is_a?(Array)          result        else          [nil, result]        end      end      alias rpget revprop_get      alias rpg revprop_get            # Sets +value+ as a revision property named +name+ for +uri+ at +rev+.      # Both URLs and paths are avaiable as +uri+.      def revprop_set(name, value, uri, rev, force=false)        Client.revprop_set(name, value, uri, rev, force, self)      end      alias rpset revprop_set      alias rps revprop_set            # Deletes a revision property, named +name+, for +uri+ at +rev+.      # Both URLs and paths are avaiable as +uri+.      def revprop_del(name, uri, rev, force=false)        Client.revprop_set(name, nil, uri, rev, force, self)      end      alias rpdel revprop_del      alias rpd revprop_del      # Returns a list of revision properties set for +uri+ at +rev+,      # as an Array such as      # <tt>[{revprop1 => value1, revprop2 => value2, ...}, rev]</tt>.      # Both URLs and paths are avaiable as +uri+.      def revprop_list(uri, rev)        props, rev = Client.revprop_list(uri, rev, self)        if props.has_key?(Svn::Core::PROP_REVISION_DATE)          props[Svn::Core::PROP_REVISION_DATE] =            Time.from_svn_format(props[Svn::Core::PROP_REVISION_DATE])        end        [props, rev]      end      alias rplist revprop_list      alias rpl revprop_list      def export(from, to, rev=nil, peg_rev=nil,                 force=false, ignore_externals=false,                 recurse=true, native_eol=nil)        Client.export3(from, to, rev, peg_rev, force,                       ignore_externals, recurse, native_eol, self)      end            def ls(path_or_uri, rev=nil, peg_rev=nil, recurse=false)        rev ||= URI(path_or_uri).scheme ? "HEAD" : "BASE"        peg_rev ||= rev        Client.ls3(path_or_uri, rev, peg_rev, recurse, self)      end      # Invokes block once for each path below +path_or_uri+ at +rev+      # and returns +nil+.      # +path+ is a relative path from the +path_or_uri+.      # +dirent+ is an instance of Svn::Core::Dirent.      # +abs_path+ is an absolute path for +path_or_uri+ in the repository.      def list(path_or_uri, rev, peg_rev=nil, recurse=false,               dirent_fields=nil, fetch_locks=true,               &block) # :yields: path, dirent, lock, abs_path        dirent_fields ||= Core::DIRENT_ALL        Client.list(path_or_uri, peg_rev, rev, recurse, dirent_fields,                    fetch_locks, block, self)      end      def switch(path, uri, rev=nil, recurse=true)        Client.switch(path, uri, rev, recurse, self)      end            def add_simple_provider        add_provider(Core.auth_get_simple_provider)      end      if Core.respond_to?(:get_windows_simple_provider)        def add_windows_simple_provider          add_provider(Core.auth_get_windows_simple_provider)        end      end            if Core.respond_to?(:get_keychain_simple_provider)        def add_keychain_simple_provider          add_provider(Core.auth_get_keychain_simple_provider)        end      end            def add_username_provider        add_provider(Core.auth_get_username_provider)      end      def add_ssl_client_cert_file_provider        add_provider(Core.auth_get_ssl_client_cert_file_provider)      end      def add_ssl_client_cert_pw_file_provider        add_provider(Core.auth_get_ssl_client_cert_pw_file_provider)      end      def add_ssl_server_trust_file_provider        add_provider(Core.auth_get_ssl_server_trust_file_provider)      end      def add_simple_prompt_provider(retry_limit, prompt=Proc.new)        args = [retry_limit]        klass = Core::AuthCredSimple        add_prompt_provider("simple", args, prompt, klass)      end            def add_username_prompt_provider(retry_limit, prompt=Proc.new)        args = [retry_limit]        klass = Core::AuthCredUsername        add_prompt_provider("username", args, prompt, klass)      end            def add_ssl_server_trust_prompt_provider(prompt=Proc.new)        args = []        klass = Core::AuthCredSSLServerTrust        add_prompt_provider("ssl_server_trust", args, prompt, klass)      end            def add_ssl_client_cert_prompt_provider(retry_limit, prompt=Proc.new)        args = [retry_limit]        klass = Core::AuthCredSSLClientCert        add_prompt_provider("ssl_client_cert", args, prompt, klass)      end            def add_ssl_client_cert_pw_prompt_provider(retry_limit, prompt=Proc.new)        args = [retry_limit]        klass = Core::AuthCredSSLClientCertPw        add_prompt_provider("ssl_client_cert_pw", args, prompt, klass)      end      def set_log_msg_func(callback=Proc.new)        @log_msg_baton = Client.set_log_msg_func2(self, callback)      end            def set_notify_func(callback=Proc.new)        @notify_baton = Client.set_notify_func2(self, callback)      end            def set_cancel_func(callback=Proc.new)        @cancel_baton = Client.set_cancel_func(self, callback)      end            private      def init_callbacks        set_log_msg_func(nil)        set_notify_func(nil)        set_cancel_func(nil)      end      %w(log_msg notify cancel).each do |type|        private "#{type}_func", "#{type}_baton"        private "#{type}_func=", "#{type}_baton="      end      %w(notify).each do |type|        private "#{type}_func2", "#{type}_baton2"        private "#{type}_func2=", "#{type}_baton2="      end            def add_prompt_provider(name, args, prompt, cred_class)        real_prompt = Proc.new do |*prompt_args|          cred = cred_class.new          prompt.call(cred, *prompt_args)          cred        end        method_name = "swig_rb_auth_get_#{name}_prompt_provider"        baton, pro = Core.__send__(method_name, real_prompt, *args)        @batons << baton        @prompts << real_prompt        add_provider(pro)      end      def add_provider(provider)        @providers << provider        update_auth_baton      end      def update_auth_baton        @auth_baton = Core::AuthBaton.new(@providers, @auth_baton.parameters)        self.auth_baton = @auth_baton      end      def normalize_path(paths)        paths = [paths] unless paths.is_a?(Array)        paths.collect do |path|          path.chomp(File::SEPARATOR)        end      end    end    # Following methods are also available:    #    # [path]    #   Returns a path concerned with the instance.    # [prop_changed?]    #   Returns +true+ when the instance is a change involving a property    #   change.    class DiffSummarize      alias prop_changed? prop_changed      # Returns +true+ when the instance is a normal change.      def kind_normal?        summarize_kind == DIFF_SUMMARIZE_KIND_NORMAL      end      # Returns +true+ when the instance is a change involving addition.      def kind_added?        summarize_kind == DIFF_SUMMARIZE_KIND_ADDED      end      # Returns +true+ when the instance is a change involving modification.      def kind_modified?        summarize_kind == DIFF_SUMMARIZE_KIND_MODIFIED      end      # Returns +true+ when the instance is a change involving deletion.      def kind_deleted?        summarize_kind == DIFF_SUMMARIZE_KIND_DELETED      end      # Returns +true+ when the instance is a change made to no node.      def node_kind_none?        node_kind == Core::NODE_NONE      end      # Returns +true+ when the instance is a change made to a file node.      def node_kind_file?        node_kind == Core::NODE_FILE      end      # Returns +true+ when the instance is a change made to a directory node.      def node_kind_dir?        node_kind == Core::NODE_DIR      end      # Returns +true+ when the instance is a change made to an unknown node.      def node_kind_unknown?        node_kind == Core::NODE_UNKNOWN      end    end  endend

⌨️ 快捷键说明

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