files_in_my_diff 1.0.1 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a88f0f02b2aefb31e6da55d59de6c6daf93d4bb4fbe747f3ec1a6a374e95eb0
4
- data.tar.gz: 4054752c36ceaa2b84fed573babefa0cecf41785acfa5dcb2b075b053cbc89f0
3
+ metadata.gz: 73cfb3c9c2d66b1c6ba5511b857e2ed8aa1c4bb54d9a9012229c1ae19af340a0
4
+ data.tar.gz: 4da7cd64d5e793a53df01b94c962db468464e4a8b2aaa79edc53d12579807be9
5
5
  SHA512:
6
- metadata.gz: eae51049ca35c407e012f1d79d3035872a69758ec4a750c46ec274aecad9254941b6b3f402db96f0e2bf9e2e6225a45d2f0e0f03a984f4870892cc05bf4a92f2
7
- data.tar.gz: 5504a07ab0d7c1b3e6ed5acb367384b0daf9d784343e20730cd75835693728756fbcbea43f9365845ef410a6cb367ef4d93a9f5566f87a566924eeaad2963a5a
6
+ metadata.gz: c23de3b55a3b13b6ccdf316ecfa79560d2626095f4317a564cdfde6000efa93a3be2902d38bf38e9643dc9d66c413860718123b85ff88185afc7d89975e40707
7
+ data.tar.gz: b528f92d629db85de8fff74ddc8e6eb31f927cc1cd1dd016792b1bf3049ec9ccf1f03168bb4d3d6f75511df9e008e5add88d10d40be9a805847e246553f595c7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## [1.1.0] - 2026-09-20
2
+
3
+ - The `git` dependency moves from 2.x to 5.x. The gem monkey-patched
4
+ `Git::Base` to add a worktree command, and `Git::Base` is no longer a class in
5
+ 5.x, so loading the gem raised `TypeError: Base is not a class`. The patch is
6
+ gone: git 5 has a public `worktree_add`.
7
+ - The executable failed with a `LoadError` when run from inside a project that
8
+ uses Bundler, which is most of the repositories this tool exists to inspect.
9
+ It required `bundler/setup`, so it resolved against the inspected project's
10
+ Gemfile instead of its own installed gems.
11
+ - `require 'files_in_my_diff'` raised `uninitialized constant Git`. Nothing in
12
+ the library required the `git` gem; it happened to work because the executable
13
+ loaded a file that did.
14
+ - The published gem no longer carries the Rakefile, the rubocop config, the TODO
15
+ or the development scripts.
16
+
17
+ ## [1.0.1] - 2024-11-09
18
+
19
+ - Fix links in gemspec
20
+
1
21
  ## [1.0.0] - 2024-11-09
2
22
 
3
23
  - Initial release
data/bin/files_in_my_diff CHANGED
@@ -12,8 +12,6 @@ if folder.nil? || folder == '--help' || revision.nil?
12
12
  exit 1
13
13
  end
14
14
 
15
- require 'bundler/setup'
16
- require 'setup_git'
17
15
  require 'files_in_my_diff'
18
16
  require 'json'
19
17
 
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FilesInMyDiff
4
+ class Error < StandardError; end
5
+ class ValidationError < Error; end
6
+ end
@@ -12,7 +12,7 @@ module FilesInMyDiff
12
12
  end
13
13
 
14
14
  def checkout_worktree(path, revision)
15
- @repo.add_worktree(path, revision)
15
+ @repo.worktree_add(path, revision)
16
16
  rescue ::Git::FailedError => e
17
17
  unless e.result.stderr.include? 'already exists'
18
18
  raise CheckoutError,
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # The gem this wraps. Nothing else requires it, so a caller doing only
4
+ # `require 'files_in_my_diff'` would otherwise get an uninitialized constant.
5
+ require 'git'
6
+
3
7
  require_relative 'git/adapter'
4
8
  require_relative 'git/diff'
5
9
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FilesInMyDiff
4
- VERSION = '1.0.1'
4
+ VERSION = '1.1.0'
5
5
  end
@@ -2,11 +2,7 @@
2
2
 
3
3
  require 'fileutils'
4
4
 
5
- module FilesInMyDiff
6
- class Error < StandardError; end
7
- class ValidationError < Error; end
8
- end
9
-
5
+ require_relative 'files_in_my_diff/errors'
10
6
  require_relative 'files_in_my_diff/version'
11
7
  require_relative 'files_in_my_diff/tmp_dir'
12
8
  require_relative 'files_in_my_diff/git'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: files_in_my_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik T. Madsen
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-11-09 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: git
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '2.3'
18
+ version: '5.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '2.3'
25
+ version: '5.0'
26
26
  description: A command line tool that takes a git repository path and revision as
27
27
  input. It creates a temporary worktree, checks out the specified revision, and returns
28
28
  a JSON object containing the worktree path, commit SHA, and list of changed files.
@@ -35,14 +35,12 @@ executables:
35
35
  extensions: []
36
36
  extra_rdoc_files: []
37
37
  files:
38
- - ".rubocop.yml"
39
38
  - CHANGELOG.md
40
39
  - LICENSE.txt
41
40
  - README.md
42
- - Rakefile
43
- - TODO
44
41
  - bin/files_in_my_diff
45
42
  - lib/files_in_my_diff.rb
43
+ - lib/files_in_my_diff/errors.rb
46
44
  - lib/files_in_my_diff/git.rb
47
45
  - lib/files_in_my_diff/git/adapter.rb
48
46
  - lib/files_in_my_diff/git/diff.rb
@@ -51,7 +49,6 @@ files:
51
49
  - lib/files_in_my_diff/tmp_dir/file_strategy.rb
52
50
  - lib/files_in_my_diff/tmp_dir/revision_dir.rb
53
51
  - lib/files_in_my_diff/version.rb
54
- - lib/setup_git.rb
55
52
  homepage: https://github.com/beatmadsen/files_in_my_diff
56
53
  licenses:
57
54
  - MIT
@@ -74,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
71
  - !ruby/object:Gem::Version
75
72
  version: '0'
76
73
  requirements: []
77
- rubygems_version: 3.6.0.dev
74
+ rubygems_version: 4.0.9
78
75
  specification_version: 4
79
76
  summary: Checks out a git revision in a new worktree and provides you the changed
80
77
  files
data/.rubocop.yml DELETED
@@ -1,30 +0,0 @@
1
-
2
- require:
3
- - rubocop-minitest
4
- - rubocop-rake
5
-
6
- AllCops:
7
- TargetRubyVersion: 3.2
8
- NewCops: enable
9
-
10
-
11
- Layout/LineLength:
12
- Max: 120
13
-
14
- Style/Documentation:
15
- Enabled: false
16
-
17
- Style/ModuleFunction:
18
- Enabled: false
19
-
20
- Style/TrailingCommaInArrayLiteral:
21
- Enabled: true
22
- EnforcedStyleForMultiline: consistent_comma
23
-
24
- Style/TrailingCommaInHashLiteral:
25
- Enabled: true
26
- EnforcedStyleForMultiline: consistent_comma
27
-
28
- Style/TrailingCommaInArguments:
29
- Enabled: true
30
- EnforcedStyleForMultiline: consistent_comma
data/Rakefile DELETED
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'minitest/test_task'
5
-
6
- Minitest::TestTask.create
7
-
8
- require 'rubocop/rake_task'
9
-
10
- RuboCop::RakeTask.new
11
-
12
- # auto-correct rubocop offenses
13
- task default: %i[test rubocop:autocorrect]
data/TODO DELETED
File without changes
data/lib/setup_git.rb DELETED
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'git'
4
-
5
- module Git
6
- class Base
7
- def add_worktree(path, revision)
8
- lib.send(:command, 'worktree', 'add', path, revision)
9
- end
10
- end
11
- end