kintsugi 0.6.1 → 0.6.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cad34bb224a6760f052ff90ac433095e7fb071e7b59ca9018719e3c6a8f5c96
|
4
|
+
data.tar.gz: a0b9675697896041b08d60186804e3c112e51c0dd61d66d26ce9f9310c626f4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 359e1799a2f313daf547645342677eca83f58a76dc857d2f72b6f97b06318455385cec7b0145344c380ec659376ff3228add2f6c91499f1bef1cd20d63beae11
|
7
|
+
data.tar.gz: 04c9e862353bef092c14464de1e781c3d2168ad958fb8c5d08ed53f74e4090921023f674e6759eff997fbe2994af9514a0d546de4a8d652b19e5a37b32ce3970
|
@@ -195,12 +195,17 @@ module Kintsugi
|
|
195
195
|
end
|
196
196
|
|
197
197
|
def apply_group_removals(project, removals)
|
198
|
-
removals.each do |change, path|
|
198
|
+
removals.sort_by(&:last).reverse.each do |change, path|
|
199
199
|
next unless %w[PBXGroup PBXVariantGroup].include?(change["isa"])
|
200
200
|
|
201
201
|
group_path = join_path(path, change["displayName"])
|
202
202
|
|
203
|
-
|
203
|
+
# by now we've deleted all of this group's children in the project, so we need to adapt the
|
204
|
+
# change to the expected current state of the group, that is, without any children.
|
205
|
+
change_without_children = change.dup
|
206
|
+
change_without_children["children"] = []
|
207
|
+
|
208
|
+
remove_component(project[group_path], change_without_children)
|
204
209
|
end
|
205
210
|
end
|
206
211
|
|
@@ -687,7 +692,7 @@ module Kintsugi
|
|
687
692
|
end
|
688
693
|
|
689
694
|
existing_build_file = build_phase.files.find do |build_file|
|
690
|
-
build_file.file_ref.path == change["fileRef"]["path"]
|
695
|
+
build_file.file_ref && build_file.file_ref.path == change["fileRef"]["path"]
|
691
696
|
end
|
692
697
|
return if !Settings.allow_duplicates && !existing_build_file.nil?
|
693
698
|
|
data/lib/kintsugi/version.rb
CHANGED
@@ -203,6 +203,55 @@ describe Kintsugi, :apply_change_to_project do
|
|
203
203
|
expect(base_project).to be_equivalent_to_project(theirs_project)
|
204
204
|
end
|
205
205
|
|
206
|
+
it "moves a group with files in it" do
|
207
|
+
new_group = base_project.main_group.find_subpath("new_group", true)
|
208
|
+
new_group.new_reference("new_file")
|
209
|
+
base_project.save
|
210
|
+
|
211
|
+
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
212
|
+
new_group2 = theirs_project.main_group.find_subpath("new_group2", true)
|
213
|
+
theirs_project["new_group"].move(new_group2)
|
214
|
+
|
215
|
+
changes_to_apply = get_diff(theirs_project, base_project)
|
216
|
+
|
217
|
+
described_class.apply_change_to_project(base_project, changes_to_apply)
|
218
|
+
|
219
|
+
expect(base_project).to be_equivalent_to_project(theirs_project)
|
220
|
+
end
|
221
|
+
|
222
|
+
it "moves a group with a group in it" do
|
223
|
+
new_group = base_project.main_group.find_subpath("new_group", true)
|
224
|
+
new_group.find_subpath("sub_group", true)
|
225
|
+
base_project.save
|
226
|
+
|
227
|
+
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
228
|
+
new_group2 = theirs_project.main_group.find_subpath("new_group2", true)
|
229
|
+
theirs_project["new_group"].move(new_group2)
|
230
|
+
|
231
|
+
changes_to_apply = get_diff(theirs_project, base_project)
|
232
|
+
|
233
|
+
described_class.apply_change_to_project(base_project, changes_to_apply)
|
234
|
+
|
235
|
+
expect(base_project).to be_equivalent_to_project(theirs_project)
|
236
|
+
end
|
237
|
+
|
238
|
+
it "moves a group with a group with a file in it" do
|
239
|
+
new_group = base_project.main_group.find_subpath("new_group", true)
|
240
|
+
sub_group = new_group.find_subpath("sub_group", true)
|
241
|
+
sub_group.new_reference("new_file")
|
242
|
+
base_project.save
|
243
|
+
|
244
|
+
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
245
|
+
new_group2 = theirs_project.main_group.find_subpath("new_group2", true)
|
246
|
+
theirs_project["new_group"].move(new_group2)
|
247
|
+
|
248
|
+
changes_to_apply = get_diff(theirs_project, base_project)
|
249
|
+
|
250
|
+
described_class.apply_change_to_project(base_project, changes_to_apply)
|
251
|
+
|
252
|
+
expect(base_project).to be_equivalent_to_project(theirs_project)
|
253
|
+
end
|
254
|
+
|
206
255
|
it "adds file with include in index and last known file type as nil" do
|
207
256
|
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
208
257
|
file_reference = theirs_project.main_group.new_reference("#{filepath}.h")
|
@@ -595,6 +644,22 @@ describe Kintsugi, :apply_change_to_project do
|
|
595
644
|
expect(base_project).to be_equivalent_to_project(theirs_project, ignore_keys: ["containerPortal"])
|
596
645
|
end
|
597
646
|
|
647
|
+
it "adds build when there is a build file without file ref" do
|
648
|
+
target = base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
649
|
+
target.frameworks_build_phase.add_file_reference(nil)
|
650
|
+
base_project.save
|
651
|
+
|
652
|
+
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
653
|
+
file_reference = theirs_project.main_group.new_reference("bar")
|
654
|
+
theirs_project.targets[0].frameworks_build_phase.add_file_reference(file_reference)
|
655
|
+
|
656
|
+
changes_to_apply = get_diff(theirs_project, base_project)
|
657
|
+
other_project = create_copy_of_project(base_project.path, "theirs")
|
658
|
+
described_class.apply_change_to_project(other_project, changes_to_apply)
|
659
|
+
|
660
|
+
expect(other_project).to be_equivalent_to_project(theirs_project)
|
661
|
+
end
|
662
|
+
|
598
663
|
it "adds product ref to build file" do
|
599
664
|
base_project.main_group.new_reference("bar")
|
600
665
|
base_project.save
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kintsugi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Yohay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|
@@ -168,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
168
|
- !ruby/object:Gem::Version
|
169
169
|
version: '0'
|
170
170
|
requirements: []
|
171
|
-
rubygems_version: 3.3.
|
171
|
+
rubygems_version: 3.3.22
|
172
172
|
signing_key:
|
173
173
|
specification_version: 4
|
174
174
|
summary: pbxproj files git conflicts solver
|