2011-10-12
| ||
16:23 | • Ticket [74413366] Bad behaviour merging with renames status still Open with 1 other change ... (artifact: b45e022d user: viriketo) | |
2011-06-17
| ||
20:13 | Adding a new test (this failed by current trunk) based on ticket [74413366fe]. ... (check-in: b2e7370e user: viric tags: merge_renames) | |
2011-06-15
| ||
07:43 | • Ticket [554f44ee] Interbranch interference with merges and renames status still Open with 1 other change ... (artifact: 14c30ffd user: viriketo) | |
2011-01-05
| ||
11:36 | • Open ticket [74413366]: Bad behaviour merging with renames plus 1 other change ... (artifact: 1cb3ce54 user: anonymous) | |
2011-01-04
| ||
14:40 | • Ticket [74413366]: 1 change ... (artifact: de378f3c user: anonymous) | |
14:12 | • Fixed ticket [74413366]. ... (artifact: 0ede264f user: drh) | |
14:12 | Fix the merge command so that file renames are only considered if they are on the shortest path between the pivot and the checkins being merged. Ticket [74413366fe5067b3d]. ... (check-in: ff2a8710 user: drh tags: trunk) | |
11:04 | • Ticket [74413366] Bad behaviour merging with renames status still Open with 1 other change ... (artifact: 678e6f49 user: anonymous) | |
10:41 | • New ticket [c9d45415] Bad find_filename_changes. ... (artifact: d9b946d4 user: anonymous) | |
09:53 | • Ticket [74413366] Bad behaviour merging with renames status still Open with 1 other change ... (artifact: a0dafe1c user: anonymous) | |
09:21 | • Ticket [74413366]: 2 changes ... (artifact: 36d50829 user: anonymous) | |
09:19 | • Add attachment filename_changes.patch to ticket [74413366] ... (artifact: dae1af32 user: anonymous) | |
09:18 | • New ticket [74413366] Bad behaviour merging with renames. ... (artifact: 65a9c731 user: anonymous) | |
Ticket Hash: | 74413366fe5067b3de2ee80567f15d432c7ea58d | |||
Title: | Bad behaviour merging with renames | |||
Status: | Open | Type: | Code_Defect | |
Severity: | Critical | Priority: | ||
Subsystem: | Resolution: | Fixed | ||
Last Modified: | 2011-10-12 16:23:50 | |||
Version Found In: | [79b7902cdd] | |||
Description: | ||||
We hit a case when a rename DELETED some files that where in P, V and M!
After an investigation, we tracked the problem:
We think that if we change the find_filename_changes() so bisect_shortest_path gets called with "directOnly=false", it solves all our problems. But we don't know further consequences from this. We need this problem fixed. drh, as you implemented all this, could you tell us if this is the change to do? I will attach the patch that removes the directOnly on find_filename_changes. anonymous claiming to be viric added on 2011-01-04 09:21:03 UTC: anonymous claiming to be viric added on 2011-01-04 09:53:45 UTC: [V]_ ^ \____ | ____[M] (the merge from P added B) | _/ | [P] | | | [rn A to B ] | | | [create A ] | | | | __[ . ] | / [ root ] So, looking at renames between P and M (with merges) does not have any rename in the way. But if we get the shortest path without merges (direct only), through root, there appears a rename "from B to A" (the reverse of the checkin). This rename makes the merge fail. anonymous claiming to be viric added on 2011-01-04 11:04:35 UTC: fossil new a.fossil mkdir a cd a fossil open ../a.fossil touch b fossil add b sleep 1 fossil commit -b b -m xxxb fossil update trunk touch a fossil add a sleep 1 fossil commit -m xxxa fossil mv a c mv a c sleep 1 fossil commit -m xxxac fossil update b fossil merge trunk sleep 1 fossil commit -m merge fossil update trunk After this: $ fossil merge b ADDED b ADDED d DELETE c "fossil undo" is available to undo changes to the working checkout. It should *not* delete C. Notice that without the patch in [c9d454153e], fossil merge fails to see the rename at all, and will do the merge ignoring the checkin with the rename in trunk. anonymous claiming to be viric added on 2011-01-04 14:40:04 UTC: Consider this graph: [V]_ | \ | _[M] | / | [P] | | _[rename] | / [ ] With the long trip (directOnly), the merge from M to V looks like a RENAME. With the short trip, it looks like ADDED/DELETE. What do you think? anonymous claiming to be viric added on 2011-01-05 11:36:12 UTC: viriketo added on 2011-10-12 16:23:50 UTC: |
Attachments:
- filename_changes.patch [download] added by anonymous on 2011-01-04 09:19:44. [details]