extract-repo 0.0.12 → 1.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/extract_repo.rb +18 -6
  4. metadata +11 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f84b4fa63a5dddf61e6d52afe17a9c875a468fd2bd0b91019fffff133219c65
4
- data.tar.gz: f49854352455955e76c522221d3e9c9577f2186a75ee5143b989fe87e406150c
3
+ metadata.gz: 279cf409025efec16fd9702f281e213c19ee215e41340c78e7cc62b35aa8037e
4
+ data.tar.gz: bd23103eaeff5ff2868be10536d7a9b39ff34638d400ec9e229c7e923812de0b
5
5
  SHA512:
6
- metadata.gz: 210a960c88fe44a7a597771ac27fbfd7ba7ea68a0d9b6ad9972e35b4a3ffc0055d99c88ff96e817f4c6aaa2d17530b9e6b9f0a2543c8d4008b5d2362061f9808
7
- data.tar.gz: df7822a2442e563fb77cacf14514fd7d535daae879111b76df942960d40acd4e783ccef24fe787c8e972e93c4a1cac4d5fdaef19f918b0bac624e513cf80c072
6
+ metadata.gz: 416ff6088a903de40c826759ddea2b2a9c832694b28337c98f68bd1c79eb6a1df7d2fa45abc3bc93ff94ee0d921040f5f28acda92365d67cfb4c92f4f033df77
7
+ data.tar.gz: 365e8e721796a98af15384a837b929a70402235e5706d3cfc440546b68ec322e1ab47d8ecb29e9d51ae5fc80db7e8b578fcca5558f0dd5ecfb4afaed87c454ed
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [0.0.14] - 2025-07-31
2
+
3
+ - Bump deps and use 1.x.x versions of foobara gems
4
+
5
+ ## [0.0.13] - 2025-05-08
6
+
7
+ - Prevent infinite loops when a file had been renamed and later named back to its original name
8
+
1
9
  ## [0.0.12] - 2025-05-07
2
10
 
3
11
  - Avoid loading pry/pry-byebug if not needed
data/lib/extract_repo.rb CHANGED
@@ -132,16 +132,14 @@ class ExtractRepo < Foobara::Command
132
132
  similarity = similarity.match(/^R0*(\d+)$/)[1].to_i
133
133
 
134
134
  if similarity >= 80
135
- renames[to_path] = from_path
135
+ renames[to_path] ||= []
136
+ renames[to_path] << from_path
136
137
  end
137
138
  end
138
139
  end
139
140
 
140
- loop do
141
- file_path = renames[file_path]
142
- break unless file_path
143
-
144
- file_paths << file_path
141
+ determine_historic_paths_for_file(file_path, renames).each do |path|
142
+ file_paths << path
145
143
  end
146
144
  end
147
145
  end
@@ -149,6 +147,20 @@ class ExtractRepo < Foobara::Command
149
147
  normalize_file_paths
150
148
  end
151
149
 
150
+ def determine_historic_paths_for_file(file_path, renames, seen = Set.new)
151
+ return [] if seen.include?(file_path)
152
+
153
+ seen << file_path
154
+
155
+ file_paths = renames[file_path]
156
+
157
+ return [] unless file_paths
158
+
159
+ file_paths + file_paths.map do |path|
160
+ determine_historic_paths_for_file(path, renames, seen)
161
+ end.flatten
162
+ end
163
+
152
164
  def normalize_file_paths
153
165
  file_paths.sort!
154
166
  file_paths.uniq!
metadata CHANGED
@@ -1,42 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extract-repo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-08 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: foobara
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - "<"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.0.102
18
+ version: 2.0.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: 0.0.102
25
+ version: 2.0.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: foobara-sh-cli-connector
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.0.1
32
+ version: 2.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - "<"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.0.1
39
+ version: 2.0.0
40
40
  email:
41
41
  - azimux@gmail.com
42
42
  executables:
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
79
  requirements: []
80
- rubygems_version: 3.6.2
80
+ rubygems_version: 3.6.9
81
81
  specification_version: 4
82
82
  summary: Extract code from one repository into a new repository, preserving history
83
83
  of the extracted files.