diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 52c6c4ea..5bc83dd3 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -18,12 +18,12 @@ jobs: fail-fast: false matrix: # Only the latest versions of JRuby and TruffleRuby are tested - ruby: ["3.0", "3.1", "3.2", "3.3", "truffleruby-24.0.0", "jruby-9.4.5.0"] + ruby: ["3.1", "3.2", "3.3", "3.4", "truffleruby-24.1.2", "jruby-9.4.12.0"] operating-system: [ubuntu-latest] experimental: [No] include: - # Only test with minimal Ruby version on Windows - ruby: 3.0 + ruby: 3.1 operating-system: windows-latest steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 92821c76..59dae355 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ # Change Log +## v3.0.0 (2025-02-27) + +[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.3.3..v3.0.0) + +Changes since v2.3.3: + +* 534fcf5 chore: use ProcessExecuter.run instead of the implementing it in this gem +* 629f3b6 feat: update dependenices +* 501d135 feat: add support for Ruby 3.4 and drop support for Ruby 3.0 +* 38c0eb5 build: update the CI build to use current versions to TruffleRuby and JRuby +* d3f3a9d chore: add frozen_string_literal: true magic comment + ## v2.3.3 (2024-12-04) [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.3.2..v2.3.3) diff --git a/bin/command_line_test b/bin/command_line_test index 918e2024..99c67f38 100755 --- a/bin/command_line_test +++ b/bin/command_line_test @@ -91,7 +91,8 @@ class CommandLineParser option_parser.separator '' option_parser.separator 'Options:' %i[ - define_help_option define_stdout_option define_stderr_option + define_help_option define_stdout_option define_stdout_file_option + define_stderr_option define_stderr_file_option define_exitstatus_option define_signal_option define_duration_option ].each { |m| send(m) } end @@ -116,6 +117,15 @@ class CommandLineParser end end + # Define the stdout-file option + # @return [void] + # @api private + def define_stdout_file_option + option_parser.on('--stdout-file="file"', 'Send contents of file to stdout') do |filename| + @stdout = File.read(filename) + end + end + # Define the stderr option # @return [void] # @api private @@ -125,6 +135,15 @@ class CommandLineParser end end + # Define the stderr-file option + # @return [void] + # @api private + def define_stderr_file_option + option_parser.on('--stderr-file="file"', 'Send contents of file to stderr') do |filename| + @stderr = File.read(filename) + end + end + # Define the exitstatus option # @return [void] # @api private diff --git a/git.gemspec b/git.gemspec index ea257473..a81ba60b 100644 --- a/git.gemspec +++ b/git.gemspec @@ -29,13 +29,13 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'activesupport', '>= 5.0' s.add_runtime_dependency 'addressable', '~> 2.8' - s.add_runtime_dependency 'process_executer', '~> 1.1' - s.add_runtime_dependency 'rchardet', '~> 1.8' + s.add_runtime_dependency 'process_executer', '~> 1.3' + s.add_runtime_dependency 'rchardet', '~> 1.9' - s.add_development_dependency 'create_github_release', '~> 1.4' - s.add_development_dependency 'minitar', '~> 0.9' - s.add_development_dependency 'mocha', '~> 2.1' - s.add_development_dependency 'rake', '~> 13.1' + s.add_development_dependency 'create_github_release', '~> 2.1' + s.add_development_dependency 'minitar', '~> 0.12' + s.add_development_dependency 'mocha', '~> 2.7' + s.add_development_dependency 'rake', '~> 13.2' s.add_development_dependency 'test-unit', '~> 3.6' unless RUBY_PLATFORM == 'java' diff --git a/lib/git.rb b/lib/git.rb index 6d0f3032..34b70caf 100644 --- a/lib/git.rb +++ b/lib/git.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'active_support' require 'active_support/deprecation' diff --git a/lib/git/author.rb b/lib/git/author.rb index 86d33047..5cf7cc72 100644 --- a/lib/git/author.rb +++ b/lib/git/author.rb @@ -1,7 +1,9 @@ +# frozen_string_literal: true + module Git class Author attr_accessor :name, :email, :date - + def initialize(author_string) if m = /(.*?) <(.*?)> (\d+) (.*)/.match(author_string) @name = m[1] @@ -9,6 +11,5 @@ def initialize(author_string) @date = Time.at(m[3].to_i) end end - end end diff --git a/lib/git/base.rb b/lib/git/base.rb index 2e9f1951..3f01530e 100644 --- a/lib/git/base.rb +++ b/lib/git/base.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'logger' require 'open3' diff --git a/lib/git/branch.rb b/lib/git/branch.rb index f6780b03..43d31767 100644 --- a/lib/git/branch.rb +++ b/lib/git/branch.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'git/path' module Git diff --git a/lib/git/branches.rb b/lib/git/branches.rb index fc871db8..e173faab 100644 --- a/lib/git/branches.rb +++ b/lib/git/branches.rb @@ -1,15 +1,17 @@ +# frozen_string_literal: true + module Git - + # object that holds all the available branches class Branches include Enumerable - + def initialize(base) @branches = {} - + @base = base - + @base.lib.branches_all.each do |b| @branches[b[0]] = Git::Branch.new(@base, b[0]) end @@ -18,21 +20,21 @@ def initialize(base) def local self.select { |b| !b.remote } end - + def remote self.select { |b| b.remote } end - + # array like methods def size @branches.size - end - + end + def each(&block) @branches.values.each(&block) end - + # Returns the target branch # # Example: @@ -50,14 +52,14 @@ def [](branch_name) @branches.values.inject(@branches) do |branches, branch| branches[branch.full] ||= branch - # This is how Git (version 1.7.9.5) works. - # Lets you ignore the 'remotes' if its at the beginning of the branch full name (even if is not a real remote branch). + # This is how Git (version 1.7.9.5) works. + # Lets you ignore the 'remotes' if its at the beginning of the branch full name (even if is not a real remote branch). branches[branch.full.sub('remotes/', '')] ||= branch if branch.full =~ /^remotes\/.+/ - + branches end[branch_name.to_s] end - + def to_s out = '' @branches.each do |k, b| @@ -65,7 +67,6 @@ def to_s end out end - end end diff --git a/lib/git/command_line.rb b/lib/git/command_line.rb index 276cdc78..6228a144 100644 --- a/lib/git/command_line.rb +++ b/lib/git/command_line.rb @@ -189,13 +189,14 @@ def initialize(env, binary_path, global_opts, logger) # # @raise [Git::TimeoutError] if the command times out # - def run(*args, out:, err:, normalize:, chomp:, merge:, chdir: nil, timeout: nil) + def run(*args, out: nil, err: nil, normalize:, chomp:, merge:, chdir: nil, timeout: nil) git_cmd = build_git_cmd(args) - out ||= StringIO.new - err ||= (merge ? out : StringIO.new) - status = execute(git_cmd, out, err, chdir: (chdir || :not_set), timeout: timeout) - - process_result(git_cmd, status, out, err, normalize, chomp, timeout) + begin + result = ProcessExecuter.run(env, *git_cmd, out: out, err: err, merge:, chdir: (chdir || :not_set), timeout: timeout, raise_errors: false) + rescue ProcessExecuter::Command::ProcessIOError => e + raise Git::ProcessIOError.new(e.message), cause: e.exception.cause + end + process_result(result, normalize, chomp, timeout) end private @@ -210,121 +211,12 @@ def build_git_cmd(args) [binary_path, *global_opts, *args].map { |e| e.to_s } end - # Determine the output to return in the `CommandLineResult` - # - # If the writer can return the output by calling `#string` (such as a StringIO), - # then return the result of normalizing the encoding and chomping the output - # as requested. - # - # If the writer does not support `#string`, then return nil. The output is - # assumed to be collected by the writer itself such as when the writer - # is a file instead of a StringIO. - # - # @param writer [#string] the writer to post-process - # - # @return [String, nil] - # - # @api private - # - def post_process(writer, normalize, chomp) - if writer.respond_to?(:string) - output = writer.string.dup - output = output.lines.map { |l| Git::EncodingUtils.normalize_encoding(l) }.join if normalize - output.chomp! if chomp - output - else - nil - end - end - - # Post-process all writers and return an array of the results - # - # @param writers [Array<#write>] the writers to post-process - # @param normalize [Boolean] whether to normalize the output of each writer - # @param chomp [Boolean] whether to chomp the output of each writer - # - # @return [Array] the output of each writer that supports `#string` - # - # @api private - # - def post_process_all(writers, normalize, chomp) - Array.new.tap do |result| - writers.each { |writer| result << post_process(writer, normalize, chomp) } - end - end - - # Raise an error when there was exception while collecting the subprocess output - # - # @param git_cmd [Array] the git command that was executed - # @param pipe_name [Symbol] the name of the pipe that raised the exception - # @param pipe [ProcessExecuter::MonitoredPipe] the pipe that raised the exception - # - # @raise [Git::ProcessIOError] - # - # @return [void] this method always raises an error - # - # @api private - # - def raise_pipe_error(git_cmd, pipe_name, pipe) - raise Git::ProcessIOError.new("Pipe Exception for #{git_cmd}: #{pipe_name}"), cause: pipe.exception - end - - # Execute the git command and collect the output - # - # @param cmd [Array] the git command to execute - # @param chdir [String] the directory to run the command in - # @param timeout [Numeric, nil] the maximum seconds to wait for the command to complete - # - # If timeout is zero of nil, the command will not time out. If the command - # times out, it is killed via a SIGKILL signal and `Git::TimeoutError` is raised. - # - # If the command does not respond to SIGKILL, it will hang this method. - # - # @raise [Git::ProcessIOError] if an exception was raised while collecting subprocess output - # @raise [Git::TimeoutError] if the command times out - # - # @return [ProcessExecuter::Status] the status of the completed subprocess - # - # @api private - # - def spawn(cmd, out_writers, err_writers, chdir:, timeout:) - out_pipe = ProcessExecuter::MonitoredPipe.new(*out_writers, chunk_size: 10_000) - err_pipe = ProcessExecuter::MonitoredPipe.new(*err_writers, chunk_size: 10_000) - ProcessExecuter.spawn(env, *cmd, out: out_pipe, err: err_pipe, chdir: chdir, timeout: timeout) - ensure - out_pipe.close - err_pipe.close - raise_pipe_error(cmd, :stdout, out_pipe) if out_pipe.exception - raise_pipe_error(cmd, :stderr, err_pipe) if err_pipe.exception - end - - # The writers that will be used to collect stdout and stderr - # - # Additional writers could be added here if you wanted to tee output - # or send output to the terminal. - # - # @param out [#write] the object to write stdout to - # @param err [#write] the object to write stderr to - # - # @return [Array, Array<#write>>] the writers for stdout and stderr - # - # @api private - # - def writers(out, err) - out_writers = [out] - err_writers = [err] - [out_writers, err_writers] - end - # Process the result of the command and return a Git::CommandLineResult # # Post process output, log the command and result, and raise an error if the # command failed. # - # @param git_cmd [Array] the git command that was executed - # @param status [Process::Status] the status of the completed subprocess - # @param out [#write] the object that stdout was written to - # @param err [#write] the object that stderr was written to + # @param result [ProcessExecuter::Command::Result] the result it is a Process::Status and include command, stdout, and stderr # @param normalize [Boolean] whether to normalize the output of each writer # @param chomp [Boolean] whether to chomp the output of each writer # @param timeout [Numeric, nil] the maximum seconds to wait for the command to complete @@ -338,40 +230,58 @@ def writers(out, err) # # @api private # - def process_result(git_cmd, status, out, err, normalize, chomp, timeout) - out_str, err_str = post_process_all([out, err], normalize, chomp) - logger.info { "#{git_cmd} exited with status #{status}" } - logger.debug { "stdout:\n#{out_str.inspect}\nstderr:\n#{err_str.inspect}" } - Git::CommandLineResult.new(git_cmd, status, out_str, err_str).tap do |result| - raise Git::TimeoutError.new(result, timeout) if status.timeout? - raise Git::SignaledError.new(result) if status.signaled? - raise Git::FailedError.new(result) unless status.success? + def process_result(result, normalize, chomp, timeout) + command = result.command + processed_out, processed_err = post_process_all([result.stdout, result.stderr], normalize, chomp) + logger.info { "#{command} exited with status #{result}" } + logger.debug { "stdout:\n#{processed_out.inspect}\nstderr:\n#{processed_err.inspect}" } + Git::CommandLineResult.new(command, result, processed_out, processed_err).tap do |processed_result| + raise Git::TimeoutError.new(processed_result, timeout) if result.timeout? + raise Git::SignaledError.new(processed_result) if result.signaled? + raise Git::FailedError.new(processed_result) unless result.success? end end - # Execute the git command and write the command output to out and err + # Post-process command output and return an array of the results # - # @param git_cmd [Array] the git command to execute - # @param out [#write] the object to write stdout to - # @param err [#write] the object to write stderr to - # @param chdir [String] the directory to run the command in - # @param timeout [Numeric, nil] the maximum seconds to wait for the command to complete + # @param raw_outputs [Array] the output to post-process + # @param normalize [Boolean] whether to normalize the output of each writer + # @param chomp [Boolean] whether to chomp the output of each writer # - # If timeout is zero of nil, the command will not time out. If the command - # times out, it is killed via a SIGKILL signal and `Git::TimeoutError` is raised. + # @return [Array] the processed output of each command output object that supports `#string` # - # If the command does not respond to SIGKILL, it will hang this method. + # @api private # - # @raise [Git::ProcessIOError] if an exception was raised while collecting subprocess output - # @raise [Git::TimeoutError] if the command times out + def post_process_all(raw_outputs, normalize, chomp) + Array.new.tap do |result| + raw_outputs.each { |raw_output| result << post_process(raw_output, normalize, chomp) } + end + end + + # Determine the output to return in the `CommandLineResult` # - # @return [Git::CommandLineResult] the result of the command to return to the caller + # If the writer can return the output by calling `#string` (such as a StringIO), + # then return the result of normalizing the encoding and chomping the output + # as requested. + # + # If the writer does not support `#string`, then return nil. The output is + # assumed to be collected by the writer itself such as when the writer + # is a file instead of a StringIO. + # + # @param raw_output [#string] the output to post-process + # @return [String, nil] # # @api private # - def execute(git_cmd, out, err, chdir:, timeout:) - out_writers, err_writers = writers(out, err) - spawn(git_cmd, out_writers, err_writers, chdir: chdir, timeout: timeout) + def post_process(raw_output, normalize, chomp) + if raw_output.respond_to?(:string) + output = raw_output.string.dup + output = output.lines.map { |l| Git::EncodingUtils.normalize_encoding(l) }.join if normalize + output.chomp! if chomp + output + else + nil + end end end end diff --git a/lib/git/config.rb b/lib/git/config.rb index 0a3fd71e..3dd35869 100644 --- a/lib/git/config.rb +++ b/lib/git/config.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git class Config diff --git a/lib/git/diff.rb b/lib/git/diff.rb index d40ddce4..303a0a89 100644 --- a/lib/git/diff.rb +++ b/lib/git/diff.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git # object that holds the last X commits on given branch diff --git a/lib/git/index.rb b/lib/git/index.rb index c27820dc..45e2de40 100644 --- a/lib/git/index.rb +++ b/lib/git/index.rb @@ -1,5 +1,6 @@ +# frozen_string_literal: true + module Git class Index < Git::Path - end end diff --git a/lib/git/lib.rb b/lib/git/lib.rb index 4128e173..a2ea79b2 100644 --- a/lib/git/lib.rb +++ b/lib/git/lib.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'git/command_line' require 'git/errors' require 'logger' @@ -570,7 +572,7 @@ def process_commit_log_data(data) case key when 'commit' hsh_array << hsh if hsh - hsh = {'sha' => value, 'message' => '', 'parent' => []} + hsh = {'sha' => value, 'message' => +'', 'parent' => []} when 'parent' hsh['parent'] << value else diff --git a/lib/git/log.rb b/lib/git/log.rb index 817d8635..dad2c2cd 100644 --- a/lib/git/log.rb +++ b/lib/git/log.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git # Return the last n commits that match the specified criteria diff --git a/lib/git/object.rb b/lib/git/object.rb index 5d399523..9abbfa08 100644 --- a/lib/git/object.rb +++ b/lib/git/object.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'git/author' require 'git/diff' require 'git/errors' diff --git a/lib/git/path.rb b/lib/git/path.rb index 4b20d9a7..a030fcb3 100644 --- a/lib/git/path.rb +++ b/lib/git/path.rb @@ -1,19 +1,21 @@ +# frozen_string_literal: true + module Git - + class Path - + attr_accessor :path - + def initialize(path, check_path=true) path = File.expand_path(path) - + if check_path && !File.exist?(path) raise ArgumentError, 'path does not exist', [path] end - + @path = path end - + def readable? File.readable?(@path) end @@ -21,11 +23,10 @@ def readable? def writable? File.writable?(@path) end - + def to_s @path end - end end diff --git a/lib/git/remote.rb b/lib/git/remote.rb index 9b2f3958..0615ff9b 100644 --- a/lib/git/remote.rb +++ b/lib/git/remote.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git class Remote < Path diff --git a/lib/git/repository.rb b/lib/git/repository.rb index 95f3bef6..00f2b529 100644 --- a/lib/git/repository.rb +++ b/lib/git/repository.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git class Repository < Path diff --git a/lib/git/stash.rb b/lib/git/stash.rb index 97de906c..43897a33 100644 --- a/lib/git/stash.rb +++ b/lib/git/stash.rb @@ -1,27 +1,28 @@ +# frozen_string_literal: true + module Git class Stash - + def initialize(base, message, existing=false) @base = base @message = message save unless existing end - + def save @saved = @base.lib.stash_save(@message) end - + def saved? @saved end - + def message @message end - + def to_s message end - end end \ No newline at end of file diff --git a/lib/git/stashes.rb b/lib/git/stashes.rb index 0ebb9bed..2ccc55d7 100644 --- a/lib/git/stashes.rb +++ b/lib/git/stashes.rb @@ -1,14 +1,16 @@ +# frozen_string_literal: true + module Git - + # object that holds all the available stashes class Stashes include Enumerable - + def initialize(base) @stashes = [] - + @base = base - + @base.lib.stashes_all.each do |id, message| @stashes.unshift(Git::Stash.new(@base, message, true)) end @@ -24,16 +26,16 @@ def initialize(base) def all @base.lib.stashes_all end - + def save(message) s = Git::Stash.new(@base, message) @stashes.unshift(s) if s.saved? end - + def apply(index=nil) @base.lib.stash_apply(index) end - + def clear @base.lib.stash_clear @stashes = [] @@ -42,14 +44,13 @@ def clear def size @stashes.size end - + def each(&block) @stashes.each(&block) end - + def [](index) @stashes[index.to_i] end - end end diff --git a/lib/git/status.rb b/lib/git/status.rb index 39ceace7..08deeccd 100644 --- a/lib/git/status.rb +++ b/lib/git/status.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git # The status class gets the status of a git repository # @@ -100,7 +102,7 @@ def untracked?(file) end def pretty - out = '' + out = +'' each do |file| out << pretty_file(file) end diff --git a/lib/git/version.rb b/lib/git/version.rb index 475f6e81..81e4d967 100644 --- a/lib/git/version.rb +++ b/lib/git/version.rb @@ -1,5 +1,7 @@ +# frozen_string_literal: true + module Git # The current gem version # @return [String] the current gem version. - VERSION='2.3.3' + VERSION='3.0.0' end diff --git a/lib/git/working_directory.rb b/lib/git/working_directory.rb index 3f37f1a5..94520065 100644 --- a/lib/git/working_directory.rb +++ b/lib/git/working_directory.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git class WorkingDirectory < Git::Path end diff --git a/lib/git/worktree.rb b/lib/git/worktree.rb index 24e79b5b..9754f5ab 100644 --- a/lib/git/worktree.rb +++ b/lib/git/worktree.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'git/path' module Git diff --git a/lib/git/worktrees.rb b/lib/git/worktrees.rb index 0cc53ba6..859c5054 100644 --- a/lib/git/worktrees.rb +++ b/lib/git/worktrees.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Git # object that holds all the available worktrees class Worktrees diff --git a/tests/test_helper.rb b/tests/test_helper.rb index 0bb809ea..c0a95174 100644 --- a/tests/test_helper.rb +++ b/tests/test_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'date' require 'fileutils' require 'minitar' diff --git a/tests/units/test_archive.rb b/tests/units/test_archive.rb index 13c40f7a..96522e22 100644 --- a/tests/units/test_archive.rb +++ b/tests/units/test_archive.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_bare.rb b/tests/units/test_bare.rb index 4972a219..f168c724 100644 --- a/tests/units/test_bare.rb +++ b/tests/units/test_bare.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_base.rb b/tests/units/test_base.rb index b0d1a589..8cb24043 100644 --- a/tests/units/test_base.rb +++ b/tests/units/test_base.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' @@ -11,7 +11,7 @@ def setup def test_add in_temp_dir do |path| git = Git.clone(@wdir, 'test_add') - + create_file('test_add/test_file_1', 'content tets_file_1') create_file('test_add/test_file_2', 'content test_file_2') create_file('test_add/test_file_3', 'content test_file_3') @@ -19,7 +19,7 @@ def test_add create_file('test_add/test file with \' quote', 'content test_file_4') assert(!git.status.added.assoc('test_file_1')) - + # Adding a single file, usign String git.add('test_file_1') @@ -39,11 +39,11 @@ def test_add assert(git.status.added.assoc('test_file_3')) assert(git.status.added.assoc('test_file_4')) assert(git.status.added.assoc('test file with \' quote')) - + git.commit('test_add commit #1') assert(git.status.added.empty?) - + delete_file('test_add/test_file_3') update_file('test_add/test_file_4', 'content test_file_4 update #1') create_file('test_add/test_file_5', 'content test_file_5') @@ -54,24 +54,24 @@ def test_add assert(git.status.deleted.assoc('test_file_3')) assert(git.status.changed.assoc('test_file_4')) assert(git.status.added.assoc('test_file_5')) - + git.commit('test_add commit #2') - + assert(git.status.deleted.empty?) assert(git.status.changed.empty?) assert(git.status.added.empty?) - + delete_file('test_add/test_file_4') update_file('test_add/test_file_5', 'content test_file_5 update #1') create_file('test_add/test_file_6', 'content test_fiile_6') - + # Adding all files (new or updated), without params git.add - + assert(git.status.deleted.assoc('test_file_4')) assert(git.status.changed.assoc('test_file_5')) assert(git.status.added.assoc('test_file_6')) - + git.commit('test_add commit #3') assert(git.status.changed.empty?) @@ -82,7 +82,7 @@ def test_add def test_commit in_temp_dir do |path| git = Git.clone(@wdir, 'test_commit') - + create_file('test_commit/test_file_1', 'content tets_file_1') create_file('test_commit/test_file_2', 'content test_file_2') @@ -96,7 +96,7 @@ def test_commit original_commit_id = git.log[0].objectish create_file('test_commit/test_file_3', 'content test_file_3') - + git.add('test_file_3') git.commit(nil, :amend => true) @@ -105,5 +105,4 @@ def test_commit assert(git.log[1].objectish == base_commit_id) end end - end diff --git a/tests/units/test_branch.rb b/tests/units/test_branch.rb index f150d878..98edb8df 100644 --- a/tests/units/test_branch.rb +++ b/tests/units/test_branch.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_checkout.rb b/tests/units/test_checkout.rb index a30b3fcc..94dba2ff 100644 --- a/tests/units/test_checkout.rb +++ b/tests/units/test_checkout.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestCheckout < Test::Unit::TestCase diff --git a/tests/units/test_command_line.rb b/tests/units/test_command_line.rb index eac144fb..7062d1aa 100644 --- a/tests/units/test_command_line.rb +++ b/tests/units/test_command_line.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'tempfile' @@ -92,10 +94,10 @@ def merge args = ['--stdout=stdout output', '--stderr=stderr output'] result = command_line.run(*args, out: out_writer, err: err_writer, normalize: normalize, chomp: chomp, merge: merge) - assert_equal(['ruby', 'bin/command_line_test', '--stdout=stdout output', '--stderr=stderr output'], result.git_cmd) + assert_equal([{}, 'ruby', 'bin/command_line_test', '--stdout=stdout output', '--stderr=stderr output'], result.git_cmd) assert_equal('stdout output', result.stdout.chomp) assert_equal('stderr output', result.stderr.chomp) - assert(result.status.is_a? ProcessExecuter::Status) + assert(result.status.is_a? ProcessExecuter::Command::Result) assert_equal(0, result.status.exitstatus) end @@ -109,7 +111,7 @@ def merge # The error raised should include the result of the command result = error.result - assert_equal(['ruby', 'bin/command_line_test', '--exitstatus=1', '--stdout=O1', '--stderr=O2'], result.git_cmd) + assert_equal([{}, 'ruby', 'bin/command_line_test', '--exitstatus=1', '--stdout=O1', '--stderr=O2'], result.git_cmd) assert_equal('O1', result.stdout.chomp) assert_equal('O2', result.stderr.chomp) assert_equal(1, result.status.exitstatus) @@ -128,7 +130,7 @@ def merge # The error raised should include the result of the command result = error.result - assert_equal(['ruby', 'bin/command_line_test', '--signal=9', '--stdout=O1', '--stderr=O2'], result.git_cmd) + assert_equal([{}, 'ruby', 'bin/command_line_test', '--signal=9', '--stdout=O1', '--stderr=O2'], result.git_cmd) # If stdout is buffered, it may not be flushed when the process is killed # assert_equal('O1', result.stdout.chomp) assert_equal('O2', result.stderr.chomp) @@ -147,14 +149,7 @@ def merge test "run should normalize output if normalize is true" do command_line = Git::CommandLine.new(env, binary_path, global_opts, logger) - args = ['--stdout=stdout output'] - - def command_line.spawn(cmd, out_writers, err_writers, chdir: nil, timeout: nil) - out_writers.each { |w| w.write(File.read('tests/files/encoding/test1.txt')) } - `true` - ProcessExecuter::Status.new($?, false) # return status - end - + args = ['--stdout-file=tests/files/encoding/test1.txt'] normalize = true result = command_line.run(*args, out: out_writer, err: err_writer, normalize: normalize, chomp: chomp, merge: merge) @@ -165,28 +160,22 @@ def command_line.spawn(cmd, out_writers, err_writers, chdir: nil, timeout: nil) Φεθγιατ θρβανιτασ ρεπριμιqθε OUTPUT - assert_equal(expected_output, result.stdout) + assert_equal(expected_output, result.stdout.delete("\r")) end test "run should NOT normalize output if normalize is false" do command_line = Git::CommandLine.new(env, binary_path, global_opts, logger) - args = ['--stdout=stdout output'] - - def command_line.spawn(cmd, out_writers, err_writers, chdir: nil, timeout: nil) - out_writers.each { |w| w.write(File.read('tests/files/encoding/test1.txt')) } - `true` - ProcessExecuter::Status.new($?, false) # return status - end - + args = ['--stdout-file=tests/files/encoding/test1.txt'] normalize = false result = command_line.run(*args, out: out_writer, err: err_writer, normalize: normalize, chomp: chomp, merge: merge) - expected_output = <<~OUTPUT - \xCB\xEF\xF1\xE5\xEC \xE9\xF0\xF3\xE8\xEC \xE4\xEF\xEB\xEF\xF1 \xF3\xE9\xF4 - \xC7\xE9\xF3 \xE5\xEE \xF4\xEF\xF4\xE1 \xF3\xE8\xE1v\xE9\xF4\xE1\xF4\xE5 - \xCD\xEF \xE8\xF1\xE2\xE1\xED\xE9\xF4\xE1\xF3 - \xD6\xE5\xE8\xE3\xE9\xE1\xF4 \xE8\xF1\xE2\xE1\xED\xE9\xF4\xE1\xF3 \xF1\xE5\xF0\xF1\xE9\xEC\xE9q\xE8\xE5 - OUTPUT + eol = RUBY_PLATFORM =~ /mswin|mingw/ ? "\r\n" : "\n" + + expected_output = + "\xCB\xEF\xF1\xE5\xEC \xE9\xF0\xF3\xE8\xEC \xE4\xEF\xEB\xEF\xF1 \xF3\xE9\xF4#{eol}" \ + "\xC7\xE9\xF3 \xE5\xEE \xF4\xEF\xF4\xE1 \xF3\xE8\xE1v\xE9\xF4\xE1\xF4\xE5#{eol}" \ + "\xCD\xEF \xE8\xF1\xE2\xE1\xED\xE9\xF4\xE1\xF3#{eol}" \ + "\xD6\xE5\xE8\xE3\xE9\xE1\xF4 \xE8\xF1\xE2\xE1\xED\xE9\xF4\xE1\xF3 \xF1\xE5\xF0\xF1\xE9\xEC\xE9q\xE8\xE5#{eol}" assert_equal(expected_output, result.stdout) end diff --git a/tests/units/test_command_line_error.rb b/tests/units/test_command_line_error.rb index 30b859ab..25c03765 100644 --- a/tests/units/test_command_line_error.rb +++ b/tests/units/test_command_line_error.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestCommandLineError < Test::Unit::TestCase diff --git a/tests/units/test_command_line_result.rb b/tests/units/test_command_line_result.rb index acec4bb6..e0cf1dd0 100644 --- a/tests/units/test_command_line_result.rb +++ b/tests/units/test_command_line_result.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestCommamndLineResult < Test::Unit::TestCase diff --git a/tests/units/test_commit_with_empty_message.rb b/tests/units/test_commit_with_empty_message.rb index 4bf04991..f896333b 100755 --- a/tests/units/test_commit_with_empty_message.rb +++ b/tests/units/test_commit_with_empty_message.rb @@ -1,4 +1,5 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true + require 'test_helper' class TestCommitWithEmptyMessage < Test::Unit::TestCase diff --git a/tests/units/test_commit_with_gpg.rb b/tests/units/test_commit_with_gpg.rb index b8a3e1ec..4bcdae70 100644 --- a/tests/units/test_commit_with_gpg.rb +++ b/tests/units/test_commit_with_gpg.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_config.rb b/tests/units/test_config.rb index b60e6c83..a72bc2e4 100644 --- a/tests/units/test_config.rb +++ b/tests/units/test_config.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_config_module.rb b/tests/units/test_config_module.rb index 060e41f6..04a1bbbb 100644 --- a/tests/units/test_config_module.rb +++ b/tests/units/test_config_module.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_describe.rb b/tests/units/test_describe.rb index 967fc753..c103c0ef 100644 --- a/tests/units/test_describe.rb +++ b/tests/units/test_describe.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_diff.rb b/tests/units/test_diff.rb index 89a476a9..3e859da5 100644 --- a/tests/units/test_diff.rb +++ b/tests/units/test_diff.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_diff_non_default_encoding.rb b/tests/units/test_diff_non_default_encoding.rb index 8bb0efa7..b9ee5231 100644 --- a/tests/units/test_diff_non_default_encoding.rb +++ b/tests/units/test_diff_non_default_encoding.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_diff_with_escaped_path.rb b/tests/units/test_diff_with_escaped_path.rb index ce0278cb..7e875be0 100644 --- a/tests/units/test_diff_with_escaped_path.rb +++ b/tests/units/test_diff_with_escaped_path.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true # encoding: utf-8 require 'test_helper' diff --git a/tests/units/test_each_conflict.rb b/tests/units/test_each_conflict.rb index f311c1ff..0854b616 100644 --- a/tests/units/test_each_conflict.rb +++ b/tests/units/test_each_conflict.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_escaped_path.rb b/tests/units/test_escaped_path.rb index ada6eafa..591429b9 100755 --- a/tests/units/test_escaped_path.rb +++ b/tests/units/test_escaped_path.rb @@ -1,4 +1,3 @@ -#!/usr/bin/env ruby # frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_failed_error.rb b/tests/units/test_failed_error.rb index 63b894f7..16a7c855 100644 --- a/tests/units/test_failed_error.rb +++ b/tests/units/test_failed_error.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestFailedError < Test::Unit::TestCase diff --git a/tests/units/test_git_alt_uri.rb b/tests/units/test_git_alt_uri.rb index b01ea1bb..0434223a 100644 --- a/tests/units/test_git_alt_uri.rb +++ b/tests/units/test_git_alt_uri.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test/unit' # Tests for the Git::GitAltURI class diff --git a/tests/units/test_git_base_root_of_worktree.rb b/tests/units/test_git_base_root_of_worktree.rb index 3a13b59e..8b58af55 100644 --- a/tests/units/test_git_base_root_of_worktree.rb +++ b/tests/units/test_git_base_root_of_worktree.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestGitBaseRootOfWorktree < Test::Unit::TestCase diff --git a/tests/units/test_git_binary_version.rb b/tests/units/test_git_binary_version.rb index c40b99a9..74c7436e 100644 --- a/tests/units/test_git_binary_version.rb +++ b/tests/units/test_git_binary_version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestGitBinaryVersion < Test::Unit::TestCase diff --git a/tests/units/test_git_default_branch.rb b/tests/units/test_git_default_branch.rb index 3b1f64fd..bb829cec 100644 --- a/tests/units/test_git_default_branch.rb +++ b/tests/units/test_git_default_branch.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require File.dirname(__FILE__) + '/../test_helper' diff --git a/tests/units/test_git_dir.rb b/tests/units/test_git_dir.rb index b33827cf..61538261 100644 --- a/tests/units/test_git_dir.rb +++ b/tests/units/test_git_dir.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_git_path.rb b/tests/units/test_git_path.rb index 9944209e..446a3dad 100644 --- a/tests/units/test_git_path.rb +++ b/tests/units/test_git_path.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_ignored_files_with_escaped_path.rb b/tests/units/test_ignored_files_with_escaped_path.rb index 0d40711d..ad609960 100644 --- a/tests/units/test_ignored_files_with_escaped_path.rb +++ b/tests/units/test_ignored_files_with_escaped_path.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true # encoding: utf-8 require 'test_helper' diff --git a/tests/units/test_index_ops.rb b/tests/units/test_index_ops.rb index 6bee051b..c726e4e5 100644 --- a/tests/units/test_index_ops.rb +++ b/tests/units/test_index_ops.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_init.rb b/tests/units/test_init.rb index 99a87593..30a9e894 100644 --- a/tests/units/test_init.rb +++ b/tests/units/test_init.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' require 'stringio' diff --git a/tests/units/test_lib.rb b/tests/units/test_lib.rb index c92959d6..fb319be8 100644 --- a/tests/units/test_lib.rb +++ b/tests/units/test_lib.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' require "fileutils" @@ -241,14 +241,14 @@ def test_cat_file_size_with_bad_object end def test_cat_file_contents - commit = "tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7\n" + commit = +"tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7\n" commit << "parent 546bec6f8872efa41d5d97a369f669165ecda0de\n" commit << "author scott Chacon 1194561188 -0800\n" commit << "committer scott Chacon 1194561188 -0800\n" commit << "\ntest" assert_equal(commit, @lib.cat_file_contents('1cc8667014381')) # commit - tree = "040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed\tex_dir\n" + tree = +"040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed\tex_dir\n" tree << "100644 blob 3aac4b445017a8fc07502670ec2dbf744213dd48\texample.txt" assert_equal(tree, @lib.cat_file_contents('1cc8667014381^{tree}')) #tree @@ -257,7 +257,7 @@ def test_cat_file_contents end def test_cat_file_contents_with_block - commit = "tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7\n" + commit = +"tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7\n" commit << "parent 546bec6f8872efa41d5d97a369f669165ecda0de\n" commit << "author scott Chacon 1194561188 -0800\n" commit << "committer scott Chacon 1194561188 -0800\n" @@ -269,7 +269,7 @@ def test_cat_file_contents_with_block # commit - tree = "040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed\tex_dir\n" + tree = +"040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed\tex_dir\n" tree << "100644 blob 3aac4b445017a8fc07502670ec2dbf744213dd48\texample.txt" @lib.cat_file_contents('1cc8667014381^{tree}') do |f| diff --git a/tests/units/test_lib_meets_required_version.rb b/tests/units/test_lib_meets_required_version.rb index 25c410bf..11521d92 100644 --- a/tests/units/test_lib_meets_required_version.rb +++ b/tests/units/test_lib_meets_required_version.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_lib_repository_default_branch.rb b/tests/units/test_lib_repository_default_branch.rb index 0e012895..4240865f 100644 --- a/tests/units/test_lib_repository_default_branch.rb +++ b/tests/units/test_lib_repository_default_branch.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require File.dirname(__FILE__) + '/../test_helper' diff --git a/tests/units/test_log.rb b/tests/units/test_log.rb index d220af03..1cab1a32 100644 --- a/tests/units/test_log.rb +++ b/tests/units/test_log.rb @@ -1,4 +1,5 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true + require 'logger' require 'test_helper' diff --git a/tests/units/test_logger.rb b/tests/units/test_logger.rb index ced39292..deadfe34 100644 --- a/tests/units/test_logger.rb +++ b/tests/units/test_logger.rb @@ -1,4 +1,5 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true + require 'logger' require 'test_helper' @@ -27,7 +28,7 @@ def test_logger logc = File.read(log_path) - expected_log_entry = /INFO -- : \["git", "(?.*?)", "branch", "-a"/ + expected_log_entry = /INFO -- : \[\{[^}]+}, "git", "(?.*?)", "branch", "-a"/ assert_match(expected_log_entry, logc, missing_log_entry) expected_log_entry = /DEBUG -- : stdout:\n" cherry/ @@ -46,7 +47,7 @@ def test_logging_at_info_level_should_not_show_debug_messages logc = File.read(log_path) - expected_log_entry = /INFO -- : \["git", "(?.*?)", "branch", "-a"/ + expected_log_entry = /INFO -- : \[\{[^}]+}, "git", "(?.*?)", "branch", "-a"/ assert_match(expected_log_entry, logc, missing_log_entry) expected_log_entry = /DEBUG -- : stdout:\n" cherry/ diff --git a/tests/units/test_ls_files_with_escaped_path.rb b/tests/units/test_ls_files_with_escaped_path.rb index cdc890c0..2102a8ea 100644 --- a/tests/units/test_ls_files_with_escaped_path.rb +++ b/tests/units/test_ls_files_with_escaped_path.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true # encoding: utf-8 require 'test_helper' diff --git a/tests/units/test_ls_tree.rb b/tests/units/test_ls_tree.rb index 19d487a4..afa3181a 100644 --- a/tests/units/test_ls_tree.rb +++ b/tests/units/test_ls_tree.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestLsTree < Test::Unit::TestCase diff --git a/tests/units/test_merge.rb b/tests/units/test_merge.rb index 95ae33a8..2073c6af 100644 --- a/tests/units/test_merge.rb +++ b/tests/units/test_merge.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_merge_base.rb b/tests/units/test_merge_base.rb index 4a794993..a4a615de 100755 --- a/tests/units/test_merge_base.rb +++ b/tests/units/test_merge_base.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_object.rb b/tests/units/test_object.rb index 03f8d24d..9837bef7 100644 --- a/tests/units/test_object.rb +++ b/tests/units/test_object.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_pull.rb b/tests/units/test_pull.rb index f9a514ab..0c0147a7 100644 --- a/tests/units/test_pull.rb +++ b/tests/units/test_pull.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestPull < Test::Unit::TestCase diff --git a/tests/units/test_push.rb b/tests/units/test_push.rb index 78cc9396..cb6e2bc0 100644 --- a/tests/units/test_push.rb +++ b/tests/units/test_push.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestPush < Test::Unit::TestCase diff --git a/tests/units/test_remotes.rb b/tests/units/test_remotes.rb index 00c4c31b..602e0212 100644 --- a/tests/units/test_remotes.rb +++ b/tests/units/test_remotes.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_repack.rb b/tests/units/test_repack.rb index 4a27e8f8..7f8ef720 100644 --- a/tests/units/test_repack.rb +++ b/tests/units/test_repack.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_rm.rb b/tests/units/test_rm.rb index 658ce9ca..c80d1e50 100644 --- a/tests/units/test_rm.rb +++ b/tests/units/test_rm.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_show.rb b/tests/units/test_show.rb index 8c2e46ae..5439180c 100644 --- a/tests/units/test_show.rb +++ b/tests/units/test_show.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_signaled_error.rb b/tests/units/test_signaled_error.rb index 6bf46c2b..d489cb6f 100644 --- a/tests/units/test_signaled_error.rb +++ b/tests/units/test_signaled_error.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestSignaledError < Test::Unit::TestCase diff --git a/tests/units/test_signed_commits.rb b/tests/units/test_signed_commits.rb index c50fa62f..f3c783c1 100644 --- a/tests/units/test_signed_commits.rb +++ b/tests/units/test_signed_commits.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' require "fileutils" diff --git a/tests/units/test_stashes.rb b/tests/units/test_stashes.rb index 0516f273..78312651 100644 --- a/tests/units/test_stashes.rb +++ b/tests/units/test_stashes.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_status.rb b/tests/units/test_status.rb index 36543bc1..fd446e02 100644 --- a/tests/units/test_status.rb +++ b/tests/units/test_status.rb @@ -1,5 +1,5 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_status_object.rb b/tests/units/test_status_object.rb index ee343cb6..3d5d0a29 100644 --- a/tests/units/test_status_object.rb +++ b/tests/units/test_status_object.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rbconfig' require 'securerandom' require 'test_helper' diff --git a/tests/units/test_status_object_empty_repo.rb b/tests/units/test_status_object_empty_repo.rb index 4a8c366c..71435b11 100644 --- a/tests/units/test_status_object_empty_repo.rb +++ b/tests/units/test_status_object_empty_repo.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rbconfig' require 'securerandom' require 'test_helper' diff --git a/tests/units/test_submodule.rb b/tests/units/test_submodule.rb index 009127f2..bdf7ffdc 100644 --- a/tests/units/test_submodule.rb +++ b/tests/units/test_submodule.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_tags.rb b/tests/units/test_tags.rb index 242af137..df62a8f2 100644 --- a/tests/units/test_tags.rb +++ b/tests/units/test_tags.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_thread_safety.rb b/tests/units/test_thread_safety.rb index 48b93ae7..a4a59259 100644 --- a/tests/units/test_thread_safety.rb +++ b/tests/units/test_thread_safety.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_timeout_error.rb b/tests/units/test_timeout_error.rb index 3bfc90b6..e3e4999a 100644 --- a/tests/units/test_timeout_error.rb +++ b/tests/units/test_timeout_error.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' class TestTimeoutError < Test::Unit::TestCase diff --git a/tests/units/test_tree_ops.rb b/tests/units/test_tree_ops.rb index 82e65b49..2d8219fe 100644 --- a/tests/units/test_tree_ops.rb +++ b/tests/units/test_tree_ops.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true require 'test_helper' diff --git a/tests/units/test_windows_cmd_escaping.rb b/tests/units/test_windows_cmd_escaping.rb index d8b3ee54..9998fd89 100644 --- a/tests/units/test_windows_cmd_escaping.rb +++ b/tests/units/test_windows_cmd_escaping.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true # encoding: utf-8 require 'test_helper' diff --git a/tests/units/test_worktree.rb b/tests/units/test_worktree.rb index bbe377ce..910561ec 100644 --- a/tests/units/test_worktree.rb +++ b/tests/units/test_worktree.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +# frozen_string_literal: true # require 'fileutils' # require 'pathname' pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy