Hello, we had an issue merging with renames here. The 'test-shortest-path' takes what we think is a *WRONG* path for the merge to happen.
We had two long-standing branches, that both were updated from trunk from time to time. One was merged into trunk only recently, altough it has been there for two months. We once did in branch A a "fossil merge trunk" at the end of January. We worked a lot in trunk after that. This gave the current common ancestor between A and trunk. Recently we did in branch B a "fossil merge trunk", and then in trunk, "fossil merge B". It came the day when whe decided to do, in branch A, refresh it from trunk: "fossil merge trunk". Then it went wrong, because it found the "shortest-path" *THROUGH* branch A, that went to trunk and branch A back in mid december. We had little changes in A, and lots of changes in trunk. Through 'A' was the *shortest path*. So in this case, the "shortest path" (smallest number of commits) was not going through the common ancestor between A and trunk (of end of January), but through some common ancestor one month older. This could have worked, if the first merge of the end of January did not have any rename. It had renames, and due to this, the last merge attempt complained about this like this: WARNING - no common ancestor: file1 WARNING - no common ancestor: file2 WARNING - no common ancestor: file3 WARNING - no common ancestor: file4 .... So we propose that, for the merge between two branches, it should be calculated through the *shortest path* that (additional condition) goes through the *common ancestor*. What do you think? Here is how the "test-shortest-path trunk A" looks like: 1: c844ce6d50e0 2011-03-03 14:14:51 is a child of (trunk) 2: a43678fc9ca0 2011-03-03 14:12:18 is a child of 3: 828a14d063c4 2011-03-03 11:54:30 is a child of 4: edb41e5c230b 2011-03-03 11:13:09 is a child of 5: e1b7b9c9aabc 2011-03-03 09:48:33 is a child of 6: 6426c87f9132 2011-02-24 08:22:45 is a child of 7: 3ce0d541f673 2011-02-23 21:12:02 is a child of 8: 99319ca24ef5 2011-02-23 15:15:59 is a child of 9: deda6f59bdd4 2011-02-23 13:55:02 is a child of 10: c0d55468828c 2011-02-23 10:29:18 is a child of 11: b664b5b18bcd 2011-02-23 09:11:10 is a child of 12: 241698eda20c 2011-02-23 09:06:37 is a child of 13: d892a84a853b 2011-02-22 09:13:40 is a parent of 14: 1d669cc444e7 2011-02-22 13:43:04 is a child of (branch B) 15: c788f28c5660 2010-12-22 15:09:28 is a child of 16: 8ed57277e997 2010-12-22 13:20:11 is a child of 17: 87c26be24920 2010-12-22 13:18:27 is a child of 18: 6478caeac746 2010-12-22 10:03:02 is a child of 19: 6a13f33daba8 2010-12-22 09:41:06 is a child of (trunk again) 20: b215075e199d 2010-12-21 15:03:20 is a parent of (branch A) 21: aa1588e4ffc3 2010-12-22 11:41:32 is a parent of 22: 799ee1a58db1 2010-12-22 13:27:11 is a parent of 23: 75a94cb02cd6 2010-12-22 15:11:03 is a parent of 24: ed258cef647f 2010-12-22 16:20:38 is a parent of 25: 0bcba8b051c6 2010-12-22 16:21:18 is a parent of 26: e793f744c587 2010-12-23 09:18:59 is a parent of 27: b1681a484058 2011-01-24 11:55:03 The common ancestor between A and trunk dates from 2011-01-24, two hours earlier to the last element of the "test-shortest-path" above. _______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users