View Issue Details

IDProjectCategoryView StatusLast Update
0005622DarkRadiantMap Editingpublic26.07.2021 13:50
Reportergreebo Assigned Togreebo  
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version2.12.0 
Target Version2.13.0Fixed in Version2.13.0 
Summary0005622: Map Comparison/Diffing
DescriptionThe ability to detect the differences between two distinct maps or map versions will serve as foundation for more involved features like merging, patching or conflict resolution.
TagsNo tags attached.

Relationships

child of 0005623 resolvedgreebo Differential Map Merge 

Activities

There are no notes attached to this issue.

Related Changesets

DarkRadiant: map_merge 2303d335

2021-05-22 15:54:43

greebo

Details Diff
0005622: Add empty MergeMap command registration, no algorithm yet. Affected Issues
0005622
mod - install/menu.xml Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File

DarkRadiant: map_merge 1a5db5d4

2021-05-22 15:59:42

greebo

Details Diff
0005622: Rename map::algorithm::mergeMap to map::algorithm::importMap to not collide with the upcoming changes Affected Issues
0005622
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File

DarkRadiant: map_merge 059d6aba

2021-05-22 16:55:06

greebo

Details Diff
0005622: Basic algorithm to assemble a map fingerprint for all contained nodes Affected Issues
0005622
add - include/icomparablenode.h Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File
mod - tools/msvc/include.vcxproj Diff File

DarkRadiant: map_merge d70645d5

2021-05-22 18:58:34

greebo

Details Diff
0005622: Move hashing code to math namespace Affected Issues
0005622
add - libs/math/Hash.h Diff File
mod - libs/render/VertexHashing.h Diff File
mod - tools/msvc/mathlib.vcxproj Diff File

DarkRadiant: map_merge f27c073f

2021-05-22 18:59:23

greebo

Details Diff
0005622: Implement fingerprinting of brush nodes (layer or grouping information are disregarded) Affected Issues
0005622
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/brush/BrushNode.h Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File

DarkRadiant: map_merge c33d8839

2021-05-22 19:09:53

greebo

Details Diff
0005622: Implement fingerprinting of patch nodes (layer or grouping information are disregarded) Affected Issues
0005622
mod - include/icomparablenode.h Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/patch/PatchNode.cpp Diff File
mod - radiantcore/patch/PatchNode.h Diff File

DarkRadiant: map_merge ffe86cfb

2021-05-22 19:18:45

greebo

Details Diff
0005622: Implement fingerprinting of entity nodes (layer or grouping information are disregarded) Affected Issues
0005622
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - radiantcore/entity/EntityNode.h Diff File

DarkRadiant: map_merge be56c0e4

2021-05-23 04:38:23

greebo

Details Diff
0005622: Brush fingerprint unit tests Affected Issues
0005622
mod - test/CMakeLists.txt Diff File
add - test/MapMerging.cpp Diff File
add - test/resources/tdm/maps/fingerprinting.mapx Diff File
mod - tools/msvc/Tests/Tests.vcxproj Diff File
mod - tools/msvc/Tests/Tests.vcxproj.filters Diff File

DarkRadiant: map_merge 07ca6d94

2021-05-23 05:17:31

greebo

Details Diff
0005622: Patch and Entity fingerprint unit tests. The order of spawnargs on entity nodes do not affect the fingerprint. Affected Issues
0005622
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - test/MapMerging.cpp Diff File
mod - test/resources/tdm/maps/fingerprinting.mapx Diff File

DarkRadiant: map_merge 160cae89

2021-05-23 07:07:06

greebo

Details Diff
0005622: Comparison algorithm WIP Affected Issues
0005622
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File

DarkRadiant: map_merge 39629130

2021-05-23 07:25:31

greebo

Details Diff
0005622: Entity nodes are including child fingerprints. Changes in hierarchies will be considered in a second comparison pass. Affected Issues
0005622
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - test/MapMerging.cpp Diff File

DarkRadiant: map_merge f1a74e7e

2021-05-23 07:37:02

greebo

Details Diff
0005622: Extend entity fingerprint unit tests covering the order of child nodes Affected Issues
0005622
mod - test/MapMerging.cpp Diff File

DarkRadiant: map_merge 8db49603

2021-05-23 07:40:10

greebo

Details Diff
0005622: Entity fingerprint is insensitive to the order of its child nodes Affected Issues
0005622
mod - radiantcore/entity/EntityNode.cpp Diff File

DarkRadiant: map_merge ee030261

2021-05-23 09:11:06

greebo

Details Diff
0005622: Compare entities first Affected Issues
0005622
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File

DarkRadiant: map_merge 4fd43a9d

2021-05-23 10:36:39

greebo

Details Diff
0005622: Refactor result type Affected Issues
0005622
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File

DarkRadiant: map_merge 51512a65

2021-05-23 13:47:16

greebo

Details Diff
0005622: Produce an SHA256 hash as fingerprint.
SHA256 implementation was taken from TDM's source code, which was in turn taken from B-Con's repository on Github.
Affected Issues
0005622
mod - LICENSE Diff File
mod - include/icomparablenode.h Diff File
mod - libs/math/Hash.h Diff File
add - libs/math/SHA256.cpp Diff File
add - libs/math/SHA256.h Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/brush/BrushNode.h Diff File
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - radiantcore/entity/EntityNode.h Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File
mod - radiantcore/patch/PatchNode.cpp Diff File
mod - radiantcore/patch/PatchNode.h Diff File
mod - test/MapMerging.cpp Diff File
mod - tools/msvc/mathlib.vcxproj Diff File

DarkRadiant: map_merge 8fcc1962

2021-05-23 13:52:19

greebo

Details Diff
0005622: No double-registering matching entities Affected Issues
0005622
mod - radiantcore/map/algorithm/Import.cpp Diff File

DarkRadiant: map_merge d0a6f6d8

2021-05-23 14:32:16

greebo

Details Diff
0005622: Move algorithm to separate file Affected Issues
0005622
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File
add - radiantcore/map/algorithm/SceneGraphComparer.cpp Diff File
add - radiantcore/map/algorithm/SceneGraphComparer.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

DarkRadiant: map_merge cbbd03d5

2021-05-23 15:15:15

greebo

Details Diff
0005622: Entity matching Affected Issues
0005622
mod - radiantcore/map/algorithm/SceneGraphComparer.cpp Diff File
mod - radiantcore/map/algorithm/SceneGraphComparer.h Diff File

DarkRadiant: map_merge dd06f738

2021-05-23 16:16:45

greebo

Details Diff
0005622: Missing entities are now recorded in the result, detailed diff of name-matching entities should follow Affected Issues
0005622
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/SceneGraphComparer.cpp Diff File
mod - radiantcore/map/algorithm/SceneGraphComparer.h Diff File

DarkRadiant: map_merge 314c8914

2021-05-23 17:50:16

greebo

Details Diff
0005622: Entity key/value comparison Affected Issues
0005622
mod - radiantcore/map/algorithm/SceneGraphComparer.cpp Diff File
mod - radiantcore/map/algorithm/SceneGraphComparer.h Diff File

DarkRadiant: map_merge 8157b090

2021-05-23 17:56:06

greebo

Details Diff
0005622: Move comparer class to scenelib Affected Issues
0005622
mod - libs/scene/CMakeLists.txt Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File
mod - tools/msvc/scenelib.vcxproj Diff File
mod - tools/msvc/scenelib.vcxproj.filters Diff File

DarkRadiant: map_merge 17a3345c

2021-05-23 18:14:01

greebo

Details Diff
0005622: Rename target to base Affected Issues
0005622
mod - libs/scene/SceneGraphComparer.cpp Diff File
mod - libs/scene/SceneGraphComparer.h Diff File

DarkRadiant: map_merge b0db81ea

2021-05-23 18:41:06

greebo

Details Diff
0005622: Couple of unit tests Affected Issues
0005622
mod - libs/scene/SceneGraphComparer.h Diff File
mod - test/MapMerging.cpp Diff File
mod - test/resources/tdm/maps/fingerprinting.mapx Diff File
add - test/resources/tdm/maps/fingerprinting_2.mapx Diff File

DarkRadiant: map_merge 88b753cf

2021-05-23 18:42:11

greebo

Details Diff
0005622: CMakeLists adjusted Affected Issues
0005622
mod - radiantcore/CMakeLists.txt Diff File

DarkRadiant: map_merge 4855bccc

2021-05-23 18:55:28

greebo

Details Diff
0005622: Remove some debug output Affected Issues
0005622
mod - libs/scene/SceneGraphComparer.cpp Diff File

DarkRadiant: map_merge a2ae6c0c

2021-05-24 03:45:33

greebo

Details Diff
0005622: Adjust CMakeLists.txt Affected Issues
0005622
mod - libs/math/CMakeLists.txt Diff File

DarkRadiant: map_merge dd8a7e66

2021-05-24 03:50:03

greebo

Details Diff
0005622: Linux paths are case-sensitive, who would've thought Affected Issues
0005622
mod - libs/math/SHA256.cpp Diff File

DarkRadiant: map_merge 383a01a9

2021-05-24 04:38:36

greebo

Details Diff
0005622: Child primitive diff algorithm Affected Issues
0005622
mod - libs/scene/SceneGraphComparer.cpp Diff File
mod - libs/scene/SceneGraphComparer.h Diff File
mod - test/MapMerging.cpp Diff File
mod - test/resources/tdm/maps/fingerprinting.mapx Diff File
mod - test/resources/tdm/maps/fingerprinting_2.mapx Diff File

DarkRadiant: map_merge a18d3a02

2021-05-24 05:03:04

greebo

Details Diff
0005622: Child primitive unit tests Affected Issues
0005622
mod - test/MapMerging.cpp Diff File

DarkRadiant: map_merge c862c0a1

2021-05-24 05:54:07

greebo

Details Diff
0005622: Add some layer changes to the two map variants Affected Issues
0005622
mod - test/resources/tdm/maps/fingerprinting.mapx Diff File
mod - test/resources/tdm/maps/fingerprinting_2.mapx Diff File

Issue History

Date Modified Username Field Change
22.05.2021 15:53 greebo New Issue
22.05.2021 15:53 greebo Status new => confirmed
22.05.2021 15:54 greebo Assigned To => greebo
22.05.2021 15:54 greebo Status confirmed => assigned
22.05.2021 15:54 greebo Description Updated
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge 2303d335
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge 1a5db5d4
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge 059d6aba
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge d70645d5
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge f27c073f
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge c33d8839
22.05.2021 19:19 greebo Changeset attached => DarkRadiant map_merge ffe86cfb
23.05.2021 05:17 greebo Changeset attached => DarkRadiant map_merge be56c0e4
23.05.2021 05:17 greebo Changeset attached => DarkRadiant map_merge 07ca6d94
23.05.2021 07:40 greebo Changeset attached => DarkRadiant map_merge 160cae89
23.05.2021 07:40 greebo Changeset attached => DarkRadiant map_merge 39629130
23.05.2021 07:40 greebo Changeset attached => DarkRadiant map_merge f1a74e7e
23.05.2021 07:40 greebo Changeset attached => DarkRadiant map_merge 8db49603
23.05.2021 10:37 greebo Changeset attached => DarkRadiant map_merge ee030261
23.05.2021 10:37 greebo Changeset attached => DarkRadiant map_merge 4fd43a9d
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge 51512a65
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge 8fcc1962
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge d0a6f6d8
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge cbbd03d5
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge dd06f738
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge 314c8914
23.05.2021 17:56 greebo Changeset attached => DarkRadiant map_merge 8157b090
23.05.2021 18:41 greebo Changeset attached => DarkRadiant map_merge 17a3345c
23.05.2021 18:41 greebo Changeset attached => DarkRadiant map_merge b0db81ea
23.05.2021 18:42 greebo Changeset attached => DarkRadiant map_merge 88b753cf
24.05.2021 03:45 greebo Changeset attached => DarkRadiant map_merge 4855bccc
24.05.2021 03:45 greebo Changeset attached => DarkRadiant map_merge a2ae6c0c
24.05.2021 04:38 greebo Changeset attached => DarkRadiant map_merge dd8a7e66
24.05.2021 04:38 greebo Changeset attached => DarkRadiant map_merge 383a01a9
24.05.2021 05:25 greebo Relationship added child of 0005623
24.05.2021 05:28 greebo Summary Differential Map Merge => Map Comparison/Diffing
24.05.2021 05:28 greebo Description Updated
24.05.2021 07:51 greebo Changeset attached => DarkRadiant map_merge a18d3a02
24.05.2021 07:51 greebo Changeset attached => DarkRadiant map_merge c862c0a1
02.06.2021 18:39 greebo Status assigned => resolved
02.06.2021 18:39 greebo Resolution open => fixed
02.06.2021 18:39 greebo Fixed in Version => 2.13.0
02.06.2021 18:39 greebo Target Version => 2.13.0
26.07.2021 13:48 greebo Changeset attached => DarkRadiant vcs d78afeb7
26.07.2021 13:50 greebo Changeset removed DarkRadiant vcs d78afeb7 =>