View Issue Details

IDProjectCategoryView StatusLast Update
0005793DarkRadiantMap Editingpublic01.11.2021 05:05
ReporterDragofer Assigned To 
PrioritynormalSeveritynormalReproducibilityN/A
Status acknowledgedResolutionopen 
Product Version2.13.0 
Summary0005793: 3-way merge: automatically backup merge result
DescriptionThe 3-way merge method seems to be the go-to method for multiple people to work in parallel on a map.

Based on practical experiences, this method seems to be quite reliant on methodical backing up by 1 of the mappers (the one who carries out the merges). This is an example procedure with a versioning system like SVN:

"
- rev 3061 is committed. Amadeus makes a backup of this rev.
- Bikerdude and Amadeus both work on rev 3061
- Bikerdude commits his work first, rev is now 3062
- Amadeus backs up his work, reverts his local map version, downloads rev 3062, then merges:

1) backup of rev 3061 (original version)
2) rev 3062 (Biker's work)
3) backup of Amadeus' work

and commits (rev 3063). Rinse and repeat.
"

So Amadeus needs to manually make a backup 1) of rev 3061 before they both start working on it and 2) of his own work before he obtains Bikerdude's version of the map (to avoid overwrites).

Since in a map collaboration the "original version" of the map is usually the result of the previous 3-way merge, I think the process could be simplified and less error-prone if 3-way merges automatically produced a backup of the merge result. Probably only 1 such backup is needed at a time, since this would otherwise overlap too much with DR's other backup methods, wasting space. It could maybe be next to the merged map as a .map.3way, or in a subfolder like maps/merges/...

Maybe this backup could even automatically be entered into the 1st map slot the next time the 3-way merge interface is opened, so that Amadeus only needs to plug in his own and Bikerdude's version of the map. This should probably be user-specific and not map-specific, since only the mapper who performed the merge will have this backup.

Will still need to think more on what could be done about eliminating the 2nd manual backup, before Amadeus receives the work of his co-mapper. Could be that this is an SVN-specific problem.
TagsNo tags attached.

Activities

greebo

greebo

31.10.2021 03:41

administrator   ~0014460

I don't think it needs to be that complex. I'm pretty sure the second backup is equivalent to a commit on Amadeus' side in this example. The VCS plugin has been designed to work with the 3-way merge, and I've been using the merge mechanism a lot with our own mapping at home, we don't do any manual backups. That's the whole point of having a Git versioning system in your back.

It's a bit tough to explain in written terms, but we could team up on Discord and try out an example of how the merges work on either side.

In any case, I agree that the 3-way merge is the way to go when collaborating. The 2-way method is merely to find out what has been changed between a recent and a more past version - to spot any erroneously moved brushes or changed key values.

Issue History

Date Modified Username Field Change
30.10.2021 22:04 Dragofer New Issue
30.10.2021 22:07 Dragofer Description Updated
30.10.2021 22:10 Dragofer Description Updated
30.10.2021 22:12 Dragofer Description Updated
30.10.2021 22:17 Dragofer Description Updated
30.10.2021 22:22 Dragofer Description Updated
30.10.2021 22:25 Dragofer Description Updated
30.10.2021 22:36 Dragofer Description Updated
31.10.2021 03:41 greebo Note Added: 0014460
01.11.2021 05:05 greebo Status new => acknowledged