git 2.3.3 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/continuous_integration.yml +2 -2
- data/CHANGELOG.md +12 -0
- data/git.gemspec +6 -6
- data/lib/git/author.rb +3 -2
- data/lib/git/base.rb +2 -0
- data/lib/git/branch.rb +2 -0
- data/lib/git/branches.rb +15 -14
- data/lib/git/command_line.rb +49 -139
- data/lib/git/config.rb +2 -0
- data/lib/git/diff.rb +2 -0
- data/lib/git/index.rb +2 -1
- data/lib/git/lib.rb +3 -1
- data/lib/git/log.rb +2 -0
- data/lib/git/object.rb +2 -0
- data/lib/git/path.rb +9 -8
- data/lib/git/remote.rb +2 -0
- data/lib/git/repository.rb +2 -0
- data/lib/git/stash.rb +7 -6
- data/lib/git/stashes.rb +11 -10
- data/lib/git/status.rb +3 -1
- data/lib/git/version.rb +3 -1
- data/lib/git/working_directory.rb +2 -0
- data/lib/git/worktree.rb +2 -0
- data/lib/git/worktrees.rb +2 -0
- data/lib/git.rb +2 -0
- metadata +17 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15e8ef783ed47126c9fc866e91548649296d172d6e94e9b4cdb07feec8442ba8
|
4
|
+
data.tar.gz: ee8da57446d27f9edff8153a3a0146ade937f807000b088757c76e5f93fbf283
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88cde2fac57799293f836c3c21e2753d232e64a667b4eae96077e75379c388b19edb48ea0bfc85a243e134d5f7aec5fe5b3bb926af348e8fccb47ee4feac8967
|
7
|
+
data.tar.gz: 227ebb848662a40f7a4904d88199980c38ae5ca8c9779808d32096abcb8475166c13bb027279a03751169e2f13387b7fef4f9932650013d99e9152f64697a069
|
@@ -18,12 +18,12 @@ jobs:
|
|
18
18
|
fail-fast: false
|
19
19
|
matrix:
|
20
20
|
# Only the latest versions of JRuby and TruffleRuby are tested
|
21
|
-
ruby: ["3.
|
21
|
+
ruby: ["3.1", "3.2", "3.3", "3.4", "truffleruby-24.1.2", "jruby-9.4.12.0"]
|
22
22
|
operating-system: [ubuntu-latest]
|
23
23
|
experimental: [No]
|
24
24
|
include:
|
25
25
|
- # Only test with minimal Ruby version on Windows
|
26
|
-
ruby: 3.
|
26
|
+
ruby: 3.1
|
27
27
|
operating-system: windows-latest
|
28
28
|
|
29
29
|
steps:
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,18 @@
|
|
5
5
|
|
6
6
|
# Change Log
|
7
7
|
|
8
|
+
## v3.0.0 (2025-02-27)
|
9
|
+
|
10
|
+
[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.3.3..v3.0.0)
|
11
|
+
|
12
|
+
Changes since v2.3.3:
|
13
|
+
|
14
|
+
* 534fcf5 chore: use ProcessExecuter.run instead of the implementing it in this gem
|
15
|
+
* 629f3b6 feat: update dependenices
|
16
|
+
* 501d135 feat: add support for Ruby 3.4 and drop support for Ruby 3.0
|
17
|
+
* 38c0eb5 build: update the CI build to use current versions to TruffleRuby and JRuby
|
18
|
+
* d3f3a9d chore: add frozen_string_literal: true magic comment
|
19
|
+
|
8
20
|
## v2.3.3 (2024-12-04)
|
9
21
|
|
10
22
|
[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.3.2..v2.3.3)
|
data/git.gemspec
CHANGED
@@ -29,13 +29,13 @@ Gem::Specification.new do |s|
|
|
29
29
|
|
30
30
|
s.add_runtime_dependency 'activesupport', '>= 5.0'
|
31
31
|
s.add_runtime_dependency 'addressable', '~> 2.8'
|
32
|
-
s.add_runtime_dependency 'process_executer', '~> 1.
|
33
|
-
s.add_runtime_dependency 'rchardet', '~> 1.
|
32
|
+
s.add_runtime_dependency 'process_executer', '~> 1.3'
|
33
|
+
s.add_runtime_dependency 'rchardet', '~> 1.9'
|
34
34
|
|
35
|
-
s.add_development_dependency 'create_github_release', '~> 1
|
36
|
-
s.add_development_dependency 'minitar', '~> 0.
|
37
|
-
s.add_development_dependency 'mocha', '~> 2.
|
38
|
-
s.add_development_dependency 'rake', '~> 13.
|
35
|
+
s.add_development_dependency 'create_github_release', '~> 2.1'
|
36
|
+
s.add_development_dependency 'minitar', '~> 0.12'
|
37
|
+
s.add_development_dependency 'mocha', '~> 2.7'
|
38
|
+
s.add_development_dependency 'rake', '~> 13.2'
|
39
39
|
s.add_development_dependency 'test-unit', '~> 3.6'
|
40
40
|
|
41
41
|
unless RUBY_PLATFORM == 'java'
|
data/lib/git/author.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Git
|
2
4
|
class Author
|
3
5
|
attr_accessor :name, :email, :date
|
4
|
-
|
6
|
+
|
5
7
|
def initialize(author_string)
|
6
8
|
if m = /(.*?) <(.*?)> (\d+) (.*)/.match(author_string)
|
7
9
|
@name = m[1]
|
@@ -9,6 +11,5 @@ module Git
|
|
9
11
|
@date = Time.at(m[3].to_i)
|
10
12
|
end
|
11
13
|
end
|
12
|
-
|
13
14
|
end
|
14
15
|
end
|
data/lib/git/base.rb
CHANGED
data/lib/git/branch.rb
CHANGED
data/lib/git/branches.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Git
|
2
|
-
|
4
|
+
|
3
5
|
# object that holds all the available branches
|
4
6
|
class Branches
|
5
7
|
|
6
8
|
include Enumerable
|
7
|
-
|
9
|
+
|
8
10
|
def initialize(base)
|
9
11
|
@branches = {}
|
10
|
-
|
12
|
+
|
11
13
|
@base = base
|
12
|
-
|
14
|
+
|
13
15
|
@base.lib.branches_all.each do |b|
|
14
16
|
@branches[b[0]] = Git::Branch.new(@base, b[0])
|
15
17
|
end
|
@@ -18,21 +20,21 @@ module Git
|
|
18
20
|
def local
|
19
21
|
self.select { |b| !b.remote }
|
20
22
|
end
|
21
|
-
|
23
|
+
|
22
24
|
def remote
|
23
25
|
self.select { |b| b.remote }
|
24
26
|
end
|
25
|
-
|
27
|
+
|
26
28
|
# array like methods
|
27
29
|
|
28
30
|
def size
|
29
31
|
@branches.size
|
30
|
-
end
|
31
|
-
|
32
|
+
end
|
33
|
+
|
32
34
|
def each(&block)
|
33
35
|
@branches.values.each(&block)
|
34
36
|
end
|
35
|
-
|
37
|
+
|
36
38
|
# Returns the target branch
|
37
39
|
#
|
38
40
|
# Example:
|
@@ -50,14 +52,14 @@ module Git
|
|
50
52
|
@branches.values.inject(@branches) do |branches, branch|
|
51
53
|
branches[branch.full] ||= branch
|
52
54
|
|
53
|
-
# This is how Git (version 1.7.9.5) works.
|
54
|
-
# Lets you ignore the 'remotes' if its at the beginning of the branch full name (even if is not a real remote branch).
|
55
|
+
# This is how Git (version 1.7.9.5) works.
|
56
|
+
# Lets you ignore the 'remotes' if its at the beginning of the branch full name (even if is not a real remote branch).
|
55
57
|
branches[branch.full.sub('remotes/', '')] ||= branch if branch.full =~ /^remotes\/.+/
|
56
|
-
|
58
|
+
|
57
59
|
branches
|
58
60
|
end[branch_name.to_s]
|
59
61
|
end
|
60
|
-
|
62
|
+
|
61
63
|
def to_s
|
62
64
|
out = ''
|
63
65
|
@branches.each do |k, b|
|
@@ -65,7 +67,6 @@ module Git
|
|
65
67
|
end
|
66
68
|
out
|
67
69
|
end
|
68
|
-
|
69
70
|
end
|
70
71
|
|
71
72
|
end
|
data/lib/git/command_line.rb
CHANGED
@@ -189,13 +189,14 @@ module Git
|
|
189
189
|
#
|
190
190
|
# @raise [Git::TimeoutError] if the command times out
|
191
191
|
#
|
192
|
-
def run(*args, out
|
192
|
+
def run(*args, out: nil, err: nil, normalize:, chomp:, merge:, chdir: nil, timeout: nil)
|
193
193
|
git_cmd = build_git_cmd(args)
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
194
|
+
begin
|
195
|
+
result = ProcessExecuter.run(env, *git_cmd, out: out, err: err, merge:, chdir: (chdir || :not_set), timeout: timeout, raise_errors: false)
|
196
|
+
rescue ProcessExecuter::Command::ProcessIOError => e
|
197
|
+
raise Git::ProcessIOError.new(e.message), cause: e.exception.cause
|
198
|
+
end
|
199
|
+
process_result(result, normalize, chomp, timeout)
|
199
200
|
end
|
200
201
|
|
201
202
|
private
|
@@ -210,121 +211,12 @@ module Git
|
|
210
211
|
[binary_path, *global_opts, *args].map { |e| e.to_s }
|
211
212
|
end
|
212
213
|
|
213
|
-
# Determine the output to return in the `CommandLineResult`
|
214
|
-
#
|
215
|
-
# If the writer can return the output by calling `#string` (such as a StringIO),
|
216
|
-
# then return the result of normalizing the encoding and chomping the output
|
217
|
-
# as requested.
|
218
|
-
#
|
219
|
-
# If the writer does not support `#string`, then return nil. The output is
|
220
|
-
# assumed to be collected by the writer itself such as when the writer
|
221
|
-
# is a file instead of a StringIO.
|
222
|
-
#
|
223
|
-
# @param writer [#string] the writer to post-process
|
224
|
-
#
|
225
|
-
# @return [String, nil]
|
226
|
-
#
|
227
|
-
# @api private
|
228
|
-
#
|
229
|
-
def post_process(writer, normalize, chomp)
|
230
|
-
if writer.respond_to?(:string)
|
231
|
-
output = writer.string.dup
|
232
|
-
output = output.lines.map { |l| Git::EncodingUtils.normalize_encoding(l) }.join if normalize
|
233
|
-
output.chomp! if chomp
|
234
|
-
output
|
235
|
-
else
|
236
|
-
nil
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
# Post-process all writers and return an array of the results
|
241
|
-
#
|
242
|
-
# @param writers [Array<#write>] the writers to post-process
|
243
|
-
# @param normalize [Boolean] whether to normalize the output of each writer
|
244
|
-
# @param chomp [Boolean] whether to chomp the output of each writer
|
245
|
-
#
|
246
|
-
# @return [Array<String, nil>] the output of each writer that supports `#string`
|
247
|
-
#
|
248
|
-
# @api private
|
249
|
-
#
|
250
|
-
def post_process_all(writers, normalize, chomp)
|
251
|
-
Array.new.tap do |result|
|
252
|
-
writers.each { |writer| result << post_process(writer, normalize, chomp) }
|
253
|
-
end
|
254
|
-
end
|
255
|
-
|
256
|
-
# Raise an error when there was exception while collecting the subprocess output
|
257
|
-
#
|
258
|
-
# @param git_cmd [Array<String>] the git command that was executed
|
259
|
-
# @param pipe_name [Symbol] the name of the pipe that raised the exception
|
260
|
-
# @param pipe [ProcessExecuter::MonitoredPipe] the pipe that raised the exception
|
261
|
-
#
|
262
|
-
# @raise [Git::ProcessIOError]
|
263
|
-
#
|
264
|
-
# @return [void] this method always raises an error
|
265
|
-
#
|
266
|
-
# @api private
|
267
|
-
#
|
268
|
-
def raise_pipe_error(git_cmd, pipe_name, pipe)
|
269
|
-
raise Git::ProcessIOError.new("Pipe Exception for #{git_cmd}: #{pipe_name}"), cause: pipe.exception
|
270
|
-
end
|
271
|
-
|
272
|
-
# Execute the git command and collect the output
|
273
|
-
#
|
274
|
-
# @param cmd [Array<String>] the git command to execute
|
275
|
-
# @param chdir [String] the directory to run the command in
|
276
|
-
# @param timeout [Numeric, nil] the maximum seconds to wait for the command to complete
|
277
|
-
#
|
278
|
-
# If timeout is zero of nil, the command will not time out. If the command
|
279
|
-
# times out, it is killed via a SIGKILL signal and `Git::TimeoutError` is raised.
|
280
|
-
#
|
281
|
-
# If the command does not respond to SIGKILL, it will hang this method.
|
282
|
-
#
|
283
|
-
# @raise [Git::ProcessIOError] if an exception was raised while collecting subprocess output
|
284
|
-
# @raise [Git::TimeoutError] if the command times out
|
285
|
-
#
|
286
|
-
# @return [ProcessExecuter::Status] the status of the completed subprocess
|
287
|
-
#
|
288
|
-
# @api private
|
289
|
-
#
|
290
|
-
def spawn(cmd, out_writers, err_writers, chdir:, timeout:)
|
291
|
-
out_pipe = ProcessExecuter::MonitoredPipe.new(*out_writers, chunk_size: 10_000)
|
292
|
-
err_pipe = ProcessExecuter::MonitoredPipe.new(*err_writers, chunk_size: 10_000)
|
293
|
-
ProcessExecuter.spawn(env, *cmd, out: out_pipe, err: err_pipe, chdir: chdir, timeout: timeout)
|
294
|
-
ensure
|
295
|
-
out_pipe.close
|
296
|
-
err_pipe.close
|
297
|
-
raise_pipe_error(cmd, :stdout, out_pipe) if out_pipe.exception
|
298
|
-
raise_pipe_error(cmd, :stderr, err_pipe) if err_pipe.exception
|
299
|
-
end
|
300
|
-
|
301
|
-
# The writers that will be used to collect stdout and stderr
|
302
|
-
#
|
303
|
-
# Additional writers could be added here if you wanted to tee output
|
304
|
-
# or send output to the terminal.
|
305
|
-
#
|
306
|
-
# @param out [#write] the object to write stdout to
|
307
|
-
# @param err [#write] the object to write stderr to
|
308
|
-
#
|
309
|
-
# @return [Array<Array<#write>, Array<#write>>] the writers for stdout and stderr
|
310
|
-
#
|
311
|
-
# @api private
|
312
|
-
#
|
313
|
-
def writers(out, err)
|
314
|
-
out_writers = [out]
|
315
|
-
err_writers = [err]
|
316
|
-
[out_writers, err_writers]
|
317
|
-
end
|
318
|
-
|
319
214
|
# Process the result of the command and return a Git::CommandLineResult
|
320
215
|
#
|
321
216
|
# Post process output, log the command and result, and raise an error if the
|
322
217
|
# command failed.
|
323
218
|
#
|
324
|
-
# @param
|
325
|
-
# @param status [Process::Status] the status of the completed subprocess
|
326
|
-
# @param out [#write] the object that stdout was written to
|
327
|
-
# @param err [#write] the object that stderr was written to
|
219
|
+
# @param result [ProcessExecuter::Command::Result] the result it is a Process::Status and include command, stdout, and stderr
|
328
220
|
# @param normalize [Boolean] whether to normalize the output of each writer
|
329
221
|
# @param chomp [Boolean] whether to chomp the output of each writer
|
330
222
|
# @param timeout [Numeric, nil] the maximum seconds to wait for the command to complete
|
@@ -338,40 +230,58 @@ module Git
|
|
338
230
|
#
|
339
231
|
# @api private
|
340
232
|
#
|
341
|
-
def process_result(
|
342
|
-
|
343
|
-
|
344
|
-
logger.
|
345
|
-
|
346
|
-
|
347
|
-
raise Git::
|
348
|
-
raise Git::
|
233
|
+
def process_result(result, normalize, chomp, timeout)
|
234
|
+
command = result.command
|
235
|
+
processed_out, processed_err = post_process_all([result.stdout, result.stderr], normalize, chomp)
|
236
|
+
logger.info { "#{command} exited with status #{result}" }
|
237
|
+
logger.debug { "stdout:\n#{processed_out.inspect}\nstderr:\n#{processed_err.inspect}" }
|
238
|
+
Git::CommandLineResult.new(command, result, processed_out, processed_err).tap do |processed_result|
|
239
|
+
raise Git::TimeoutError.new(processed_result, timeout) if result.timeout?
|
240
|
+
raise Git::SignaledError.new(processed_result) if result.signaled?
|
241
|
+
raise Git::FailedError.new(processed_result) unless result.success?
|
349
242
|
end
|
350
243
|
end
|
351
244
|
|
352
|
-
#
|
245
|
+
# Post-process command output and return an array of the results
|
353
246
|
#
|
354
|
-
# @param
|
355
|
-
# @param
|
356
|
-
# @param
|
357
|
-
# @param chdir [String] the directory to run the command in
|
358
|
-
# @param timeout [Numeric, nil] the maximum seconds to wait for the command to complete
|
247
|
+
# @param raw_outputs [Array] the output to post-process
|
248
|
+
# @param normalize [Boolean] whether to normalize the output of each writer
|
249
|
+
# @param chomp [Boolean] whether to chomp the output of each writer
|
359
250
|
#
|
360
|
-
#
|
361
|
-
# times out, it is killed via a SIGKILL signal and `Git::TimeoutError` is raised.
|
251
|
+
# @return [Array<String, nil>] the processed output of each command output object that supports `#string`
|
362
252
|
#
|
363
|
-
#
|
253
|
+
# @api private
|
364
254
|
#
|
365
|
-
|
366
|
-
|
255
|
+
def post_process_all(raw_outputs, normalize, chomp)
|
256
|
+
Array.new.tap do |result|
|
257
|
+
raw_outputs.each { |raw_output| result << post_process(raw_output, normalize, chomp) }
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
# Determine the output to return in the `CommandLineResult`
|
367
262
|
#
|
368
|
-
#
|
263
|
+
# If the writer can return the output by calling `#string` (such as a StringIO),
|
264
|
+
# then return the result of normalizing the encoding and chomping the output
|
265
|
+
# as requested.
|
266
|
+
#
|
267
|
+
# If the writer does not support `#string`, then return nil. The output is
|
268
|
+
# assumed to be collected by the writer itself such as when the writer
|
269
|
+
# is a file instead of a StringIO.
|
270
|
+
#
|
271
|
+
# @param raw_output [#string] the output to post-process
|
272
|
+
# @return [String, nil]
|
369
273
|
#
|
370
274
|
# @api private
|
371
275
|
#
|
372
|
-
def
|
373
|
-
|
374
|
-
|
276
|
+
def post_process(raw_output, normalize, chomp)
|
277
|
+
if raw_output.respond_to?(:string)
|
278
|
+
output = raw_output.string.dup
|
279
|
+
output = output.lines.map { |l| Git::EncodingUtils.normalize_encoding(l) }.join if normalize
|
280
|
+
output.chomp! if chomp
|
281
|
+
output
|
282
|
+
else
|
283
|
+
nil
|
284
|
+
end
|
375
285
|
end
|
376
286
|
end
|
377
287
|
end
|
data/lib/git/config.rb
CHANGED
data/lib/git/diff.rb
CHANGED
data/lib/git/index.rb
CHANGED
data/lib/git/lib.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'git/command_line'
|
2
4
|
require 'git/errors'
|
3
5
|
require 'logger'
|
@@ -570,7 +572,7 @@ module Git
|
|
570
572
|
case key
|
571
573
|
when 'commit'
|
572
574
|
hsh_array << hsh if hsh
|
573
|
-
hsh = {'sha' => value, 'message' => '', 'parent' => []}
|
575
|
+
hsh = {'sha' => value, 'message' => +'', 'parent' => []}
|
574
576
|
when 'parent'
|
575
577
|
hsh['parent'] << value
|
576
578
|
else
|
data/lib/git/log.rb
CHANGED
data/lib/git/object.rb
CHANGED
data/lib/git/path.rb
CHANGED
@@ -1,19 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Git
|
2
|
-
|
4
|
+
|
3
5
|
class Path
|
4
|
-
|
6
|
+
|
5
7
|
attr_accessor :path
|
6
|
-
|
8
|
+
|
7
9
|
def initialize(path, check_path=true)
|
8
10
|
path = File.expand_path(path)
|
9
|
-
|
11
|
+
|
10
12
|
if check_path && !File.exist?(path)
|
11
13
|
raise ArgumentError, 'path does not exist', [path]
|
12
14
|
end
|
13
|
-
|
15
|
+
|
14
16
|
@path = path
|
15
17
|
end
|
16
|
-
|
18
|
+
|
17
19
|
def readable?
|
18
20
|
File.readable?(@path)
|
19
21
|
end
|
@@ -21,11 +23,10 @@ module Git
|
|
21
23
|
def writable?
|
22
24
|
File.writable?(@path)
|
23
25
|
end
|
24
|
-
|
26
|
+
|
25
27
|
def to_s
|
26
28
|
@path
|
27
29
|
end
|
28
|
-
|
29
30
|
end
|
30
31
|
|
31
32
|
end
|
data/lib/git/remote.rb
CHANGED
data/lib/git/repository.rb
CHANGED
data/lib/git/stash.rb
CHANGED
@@ -1,27 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Git
|
2
4
|
class Stash
|
3
|
-
|
5
|
+
|
4
6
|
def initialize(base, message, existing=false)
|
5
7
|
@base = base
|
6
8
|
@message = message
|
7
9
|
save unless existing
|
8
10
|
end
|
9
|
-
|
11
|
+
|
10
12
|
def save
|
11
13
|
@saved = @base.lib.stash_save(@message)
|
12
14
|
end
|
13
|
-
|
15
|
+
|
14
16
|
def saved?
|
15
17
|
@saved
|
16
18
|
end
|
17
|
-
|
19
|
+
|
18
20
|
def message
|
19
21
|
@message
|
20
22
|
end
|
21
|
-
|
23
|
+
|
22
24
|
def to_s
|
23
25
|
message
|
24
26
|
end
|
25
|
-
|
26
27
|
end
|
27
28
|
end
|
data/lib/git/stashes.rb
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Git
|
2
|
-
|
4
|
+
|
3
5
|
# object that holds all the available stashes
|
4
6
|
class Stashes
|
5
7
|
include Enumerable
|
6
|
-
|
8
|
+
|
7
9
|
def initialize(base)
|
8
10
|
@stashes = []
|
9
|
-
|
11
|
+
|
10
12
|
@base = base
|
11
|
-
|
13
|
+
|
12
14
|
@base.lib.stashes_all.each do |id, message|
|
13
15
|
@stashes.unshift(Git::Stash.new(@base, message, true))
|
14
16
|
end
|
@@ -24,16 +26,16 @@ module Git
|
|
24
26
|
def all
|
25
27
|
@base.lib.stashes_all
|
26
28
|
end
|
27
|
-
|
29
|
+
|
28
30
|
def save(message)
|
29
31
|
s = Git::Stash.new(@base, message)
|
30
32
|
@stashes.unshift(s) if s.saved?
|
31
33
|
end
|
32
|
-
|
34
|
+
|
33
35
|
def apply(index=nil)
|
34
36
|
@base.lib.stash_apply(index)
|
35
37
|
end
|
36
|
-
|
38
|
+
|
37
39
|
def clear
|
38
40
|
@base.lib.stash_clear
|
39
41
|
@stashes = []
|
@@ -42,14 +44,13 @@ module Git
|
|
42
44
|
def size
|
43
45
|
@stashes.size
|
44
46
|
end
|
45
|
-
|
47
|
+
|
46
48
|
def each(&block)
|
47
49
|
@stashes.each(&block)
|
48
50
|
end
|
49
|
-
|
51
|
+
|
50
52
|
def [](index)
|
51
53
|
@stashes[index.to_i]
|
52
54
|
end
|
53
|
-
|
54
55
|
end
|
55
56
|
end
|
data/lib/git/status.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Git
|
2
4
|
# The status class gets the status of a git repository
|
3
5
|
#
|
@@ -100,7 +102,7 @@ module Git
|
|
100
102
|
end
|
101
103
|
|
102
104
|
def pretty
|
103
|
-
out = ''
|
105
|
+
out = +''
|
104
106
|
each do |file|
|
105
107
|
out << pretty_file(file)
|
106
108
|
end
|
data/lib/git/version.rb
CHANGED
data/lib/git/worktree.rb
CHANGED
data/lib/git/worktrees.rb
CHANGED
data/lib/git.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Chacon and others
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-02-27 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -44,84 +43,84 @@ dependencies:
|
|
44
43
|
requirements:
|
45
44
|
- - "~>"
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
46
|
+
version: '1.3'
|
48
47
|
type: :runtime
|
49
48
|
prerelease: false
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
51
50
|
requirements:
|
52
51
|
- - "~>"
|
53
52
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
53
|
+
version: '1.3'
|
55
54
|
- !ruby/object:Gem::Dependency
|
56
55
|
name: rchardet
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
58
|
- - "~>"
|
60
59
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
60
|
+
version: '1.9'
|
62
61
|
type: :runtime
|
63
62
|
prerelease: false
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
65
|
- - "~>"
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
67
|
+
version: '1.9'
|
69
68
|
- !ruby/object:Gem::Dependency
|
70
69
|
name: create_github_release
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
72
|
- - "~>"
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1
|
74
|
+
version: '2.1'
|
76
75
|
type: :development
|
77
76
|
prerelease: false
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
79
|
- - "~>"
|
81
80
|
- !ruby/object:Gem::Version
|
82
|
-
version: '1
|
81
|
+
version: '2.1'
|
83
82
|
- !ruby/object:Gem::Dependency
|
84
83
|
name: minitar
|
85
84
|
requirement: !ruby/object:Gem::Requirement
|
86
85
|
requirements:
|
87
86
|
- - "~>"
|
88
87
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0.
|
88
|
+
version: '0.12'
|
90
89
|
type: :development
|
91
90
|
prerelease: false
|
92
91
|
version_requirements: !ruby/object:Gem::Requirement
|
93
92
|
requirements:
|
94
93
|
- - "~>"
|
95
94
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
95
|
+
version: '0.12'
|
97
96
|
- !ruby/object:Gem::Dependency
|
98
97
|
name: mocha
|
99
98
|
requirement: !ruby/object:Gem::Requirement
|
100
99
|
requirements:
|
101
100
|
- - "~>"
|
102
101
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2.
|
102
|
+
version: '2.7'
|
104
103
|
type: :development
|
105
104
|
prerelease: false
|
106
105
|
version_requirements: !ruby/object:Gem::Requirement
|
107
106
|
requirements:
|
108
107
|
- - "~>"
|
109
108
|
- !ruby/object:Gem::Version
|
110
|
-
version: '2.
|
109
|
+
version: '2.7'
|
111
110
|
- !ruby/object:Gem::Dependency
|
112
111
|
name: rake
|
113
112
|
requirement: !ruby/object:Gem::Requirement
|
114
113
|
requirements:
|
115
114
|
- - "~>"
|
116
115
|
- !ruby/object:Gem::Version
|
117
|
-
version: '13.
|
116
|
+
version: '13.2'
|
118
117
|
type: :development
|
119
118
|
prerelease: false
|
120
119
|
version_requirements: !ruby/object:Gem::Requirement
|
121
120
|
requirements:
|
122
121
|
- - "~>"
|
123
122
|
- !ruby/object:Gem::Version
|
124
|
-
version: '13.
|
123
|
+
version: '13.2'
|
125
124
|
- !ruby/object:Gem::Dependency
|
126
125
|
name: test-unit
|
127
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -243,9 +242,8 @@ licenses:
|
|
243
242
|
metadata:
|
244
243
|
homepage_uri: http://github.com/ruby-git/ruby-git
|
245
244
|
source_code_uri: http://github.com/ruby-git/ruby-git
|
246
|
-
changelog_uri: https://rubydoc.info/gems/git/
|
247
|
-
documentation_uri: https://rubydoc.info/gems/git/
|
248
|
-
post_install_message:
|
245
|
+
changelog_uri: https://rubydoc.info/gems/git/3.0.0/file/CHANGELOG.md
|
246
|
+
documentation_uri: https://rubydoc.info/gems/git/3.0.0
|
249
247
|
rdoc_options: []
|
250
248
|
require_paths:
|
251
249
|
- lib
|
@@ -261,8 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
261
259
|
version: '0'
|
262
260
|
requirements:
|
263
261
|
- git 2.28.0 or greater
|
264
|
-
rubygems_version: 3.
|
265
|
-
signing_key:
|
262
|
+
rubygems_version: 3.6.2
|
266
263
|
specification_version: 4
|
267
264
|
summary: An API to create, read, and manipulate Git repositories
|
268
265
|
test_files: []
|